You can do progressive rendering in ASP.Net, you just have to do a couple things yourself to make it happen.
First, you can set Buffer=false in the @Page directive to get things to write out to the client as they’re rendered from the server. This solves half of what you want though, because what you really are asking to do is to begin rendering the header of the page while the data is being fetched off Craigslist. Normally ASP.Net does things in 2 steps: Build the Control tree and fill it in with data, then when everything’s ready, Render it. To render it while the data comes in you need to write a class that extends Control and overrides Render, and in the Render method you call your methods to scrape Craigslist and render it out.
You can do this in a more ASP.Net-like way by creating a generic Repeater Control that does all the normal things a Repeater would, but does the data half on Render instead of during the normal control tree creation phase.
But ideally speaking if you’re looking for performance, you should be querying on a background thread and caching the results locally, and serving queries from the cache. You can still do all of the above to render long lists, but querying another website really belongs on a separate thread - otherwise you’re hanging up a Render thread on the server while it idles with an open connection - not the best use of resources, and if your site gets big and keeps slamming Craigslist with the same query over and over, you’re going to get yourself banned as well.