here the 'idea' that you will need.
Create the subreport to be an exact duplicate of the main report (that way the pages numbers will align...you will need to reset the page numbers in the main report so that the length of the TOC won't affect the numbering.
The subreport will have to create a variable that can be passed from the subreport and processed in the main report as you will need to hide the output of the subreport.
what you are doing is creating the TOC at the end of the subreport and displaying it at the beginning of the Main report where you want the TOC to be.
The more I think about it the less simple it seems to be. Maybe a shared stringvar array would do the trick...maybe it has to be a couple depending on how you want to store the info for the TOC