Non ho ben capito il significato del codice che hai scritto, ad ogni modo non ricordo se il Pascal standard supporta gli array dinamici.

In Delphi è possibile implementarli attraverso una dichiarazione di questo tipo:
codice:
var
  a: array of Integer;
Si tratta comunque di una struttura dati particolare, gestita dal compilatore.

La dimensione del vettore può essere reimpostata richiamando SetLength:
codice:
  SetLength(a, 10);
Se in Pascal non viene accettato questo tipo di dato, credo che l'unica tua possibilità sia quella di implementare autonomamente l'allocazione di record (usando New e Dispose) che contengano il valore da inserire in lista e l'indirizzo dell'elemento successivo.

Ciao!