remove subreports, they affect performance by causing mulitple hits to the database. Cut down on the number of records. If you are bringing in a large number of detail records, but you are only going to display them in summary, summarize them on the DB via a stored proc and send the summary over.
No, you can't display the first page until all records are read, as you might have a dynamic grouping which would change the order--I use this feature all the time.
How many records are we talking?