Eine variable Dimensionierung ist leider nicht möglich.
Ich weiß auch nicht, warum das Laden dann so lange dauert, du musst doch nur in der übergeordneten Struktur einen Zähler implementieren, der die Anzahl geladenen speichert.
Außerdem kannst du die Verarbeitungsschleife ja auch verlassen, sobald der 1. Eintrag leer ist.

Zu bedenken ist lediglich, dass die gesamte DS 16MB nicht übersteigen darf, sonst musst du dein Speichermodell auf *teraspace umstellen.