Start by not doing anything intensive in the form Load event: set up stuff, yes, but don;t do more than you have to.
The problem you have is that downloading takes time - and until that is finished, you can't display. So do two things:
1) Cache the download images, so that you can display them quicker - you can also download "new copies" and check them for updates pretty easily (I'd store a hash with each image and compare the D/L hash with the cache version, it's simple to do).
2) Display the cached images in the Form.Shown event rather than load - that gives the user some immediate feedback that the application has started.
3) Do the downloads in a different thread.
I'd suggest using the BackgroundWorker class:
BackgroundWorker Class (System.ComponentModel)[
^] - it's very easy to use and provides "progress" and "completed" events to your main thread. Use the Progress event to signal a new image downloaded (and update your display in the handler) and the completed event to indicate all done. The link includes a basic example of how to use it.