El programa lo que hace es rellenar por filas y lo hace indefinidamente no por columnas, dejo el codigo nuevamente.
Código Delphi
[-]
var
temp:string;
begin
datos[ren,col]:=strtoint(edit1.Text);
edit1.Text:=' ';
temp:=temp+inttostr(datos[ren,col]);
listbox1.Items.Add(temp);
col:=col+1;
if (col=5) then
begin
ren:=ren+1;
col:=1;
end;
if (ren=4) then
begin
showmessage('Lista llena');
edit1.Visible:=false;
end;
end;
end.