Hmm..
oder zunächst mal aus tframes ein TObject statt Record machen
und aus frametab eine ObjectList.
Dadurch beinhaltet frametab nur 131072 Pointer auf tframes, die irgendwo 'verstreut' im Speicher liegen und somit nicht mehr zusammenhängend sein müssen.
Für was ein Objekt, das wesentlich mehr Speicher verbrät ?
Besser:
und dann schlicht mit einer TList arbeiten.