As for the UI, the collection view is made for exactly that purpose.
This is an older but nice tutorial that tells you how to do that within a table view. However, you can simply adopt the same logic to the data source of a collection view.
http://www.markj.net/iphone-asynchronous-table-image/
(I learned it from that tutorial myself. But as I implemented my case well before the collection view as introduced by Apple, I simply displayd an array of image views in each table cell. Now that the collection view is available I would scrap my (rather complicated) solution and go for the collection instead, when ever I have a chance for refactoring my old app. )