Create a dynamic schematic table of contents in Altium Designer
At one place I worked we solved the TOC problem by using a post processing script on the schematic files. Although this was for another CAD system you may be able to do something similar. In our CAD system all the schematic files were text files so they were easy to post process. I have subsequently done the same thing for the TOC on another CAD system.

Prerequisite:
Setup your schematic with a place holder page for the TOC. We used a special title on this place holder page so that the TOC could be put in any desired part of the schematic page hierarchy (or even multiple such as one on page 2 and one at last page).

What the script did was to:


Scan the schematic file(s) and gather all the schematic sheet titles. 
Locate place holder sheet contents (separate file in some CAD systems and part of single file in other CAD systems).
Purge any previously generated TOC information whilst still maintaining the page template (border, title block, etc).
Produce the TOC by creating text objects (compatible with the syntax of the CAD program) for each of the schematic files. 
Optionally create line objects to divide the TOC up into boxes.


In some cases the script would pick up additional attribute information from each schematic page and place that into a certain column of the TOC. That may be last modified date, page owner for schematics created by a team of engineers, etc.

Some schematics may be 100s of pages and the TOC would not fit on all one page. On one version of the script I worked on I made the requirement for the TOC placeholder be just one page but the script would automatically create the number of pages necessary for the TOC. After creation the script would then go through and renumber the schematic pages accordingly. In some instances this renumbering would require the schematic package to be re-opened so that page number cross references would be updated before converting the output to PDF for distribution.

Scripting like this can easily be done using languages like Visual Basic, Perl or Python.