There are two opposing cases to consider, and only a benchmark of your app will tell the difference...
If you are code cache limited (small objects & large functions) then running method 2 (two passes) is more efficient.
If you are data cache limited (using large objects, or multiple referenced objects for the updating and drawing) then a combined update & draw for each object is better.
You can guess which will be the case, but you'll probably be wrong

You probably won't get any benefit by threading these as seperate tasks. Most times when people refer to a seperate thread for graphics, they are referring to the level of the underlying graphics engine: this needs to set up states & hand the correct data to the hardware, applying sorting by texture, renderstate etc. for optimal performance.