Du sprichst es doch schon an: Arrays.
Wieso machst du es dann nicht auch einfach?
Delphi-Quellcode:
var
ThreadArray: array of TMyThread;
// Initialisieren
SetLength(ThreadArray,0);
// z.B. um einen erhöhen
SetLength(ThreadArray,Length(ThreadArray)+1);
// Alle Threads z.B. erstellen
for i:=0 to Length(ThreadArray)-1 do begin
ThreadArray[i] := TMyThread.Create;
{...}
end;