If this is alot of data, the Application Object was not intended to be used as a repository for a 'large amount of data'. How much data are we talking about?
If there is alot of data (MB's?) What's taking the most time?
1) Reading the Data from DB
2) Rendering the HTML
3) Downloading the text (how much content? MB's?)
The reason I ask is if your SQL read is taking more than a few seconds, then there's a design issue in the Database, perhaps simply an Index needs to be added to a table. SQL can return thousands of results from multi-million record tables very quickly if they are designed and indexed properly.
If the rendering the HTML is taking too much time then Caching ASP Content [msdn.microsoft.com] will do what you need.
If you are downloading 2MB worth of text then your 30-40 second rendering is slow due to the amount of data you are pushing to the client.
Have you done a diff on the Ticks at the beginning of the page and then at the end (ie: how long process/rendering takes).