Since no one else has responded, I'll throw in my $0.02, which isn't worth much when dealing with MFC.
How are you allocating the data? Is it all at once (in one big chunk)? The computer can't handle that. Make sure you allocate in fragments.
Personally, I don't think you should need to allocate all the information at one time. Allocate a small chunk (say, 10..30 rows, or whatever), fill them in, send them to output, rinse and repeat.
If I understand you correctly, your program produces an HTML file that is displayed to the user, right? If it is an issue of using more than one table to display the data or not, don't worry about it. The user will have no clue if you use more than one table. Just make sure to place them all in a single DIV or something so that they are consecutively selectable...
Hope this helps.