A: 

All UI operations should take place on the same thread. In fact if you want your system to be stable they must all take place on the same thread. I guess that what you're seeing with the slower performance on the multithreaded code is evidence of that instability.

By all means load the images in separate threads, but update the UI in the main thread.

If you search for questions tagged [multithreading] [c#] here on Stack Overflow you'll see many other questions along the same lines as yours.

See here and here for example.

ChrisF