This is my first ever answer to any question in CodeProject. Hope, this will help.
I see two probable performance issue here:
1. HTTP allows to allow 2 concurrent connections only per host, (6 concurrent connections in total, in IE8 and modern browsers) Among these two connections, one is reserved for loading JS files (Until all JS files is loaded) and another is reserved for loading other contents (markups, graphics etc).
So, in worst case, you will get only one connection to load all of your images one by one. In this case, even though your browser will send asynchronous URL request to the server, these request will be queued and will perform as synchronous request.
To solve this issue, you can use the concept of CDN (Content Delivery Network). That means, you expose your images using URLs that does not contain your host URL. In best case, you can use 3 such CDN sites for serving images (Say, images1.cdn.com, images2.cdn.com, images3.cdn.com) which would actually load the images from a single location and serve to browser request. Or, at least you can use a different CDN site for serving the images.
So, assuming that your browser have loaded all JS files and markups, it can use all 6 connections (2 per host) to load the images from the CDN sites (If you use 3 CDN sites for images). This will allow your browser to utilize its all permitted 6 connections simultaneously to load images asynchronously and will boost up performance.
Subsequent URL request for the same images from the browser should be served from the browser's cache and hence, images would load even faster.
2. Where do you store your images? In the database? Or, directly from the file system.
If the image data is loaded from the database, try to investigate the image retrieval operation's performance and see any performance improvement options. If the images are retrieved by any complex logic, try to cache the image to a pre-configured location in the disk and serve the images from the cache location on subsequent request. Even, consider storing the images in file system and serving from there, instead of storing in database (As this would give better performance).
Besides, you can investigate other parts of your codes (Data retrieval from the database, Data processing, ViewState etc) to optimize the overall performance.
Hope it helps. Cheers!