Falls möglich, kannst du dieses Array auch global definieren ... dann kommt's net in den Stack rein und es gibt diesbezüglich keine Probleme.
die Andere Möglichkeit, ist wie schon gesagt wurde ein dynamisches Array ... dafür benötigst du dann allerdings 2-mal SetLength.
Die 3. Variante ist, das du einen Pointer auf diese Struktur generrierst und diesen dann per New mit leben erfüllst
Delphi-Quellcode:
Type A = array[0..640, 0..480] of word;
P = ^A;
New(P);
P^[x, y] := ...
Aber nicht vergessen, bei den letzten beiden Varianten bist du für das Freibgeben zuständig.