Ну, можно через массив (это я для простоты сделал, чтоб показать как имя задается), а можно вообще без массива обойтись:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
lbl: TLabel;
begin
for i := 0 to 9 do begin
lbl := TLabel.Create(self);
lbl.Parent := Form1;
lbl.Name := Format('Label%d', [i]);
lbl.Left := 50;
lbl.Top := 20 * i;
lbl.Caption := 'Label #' + inttostr(i);
lbl.Show;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
(FindComponent('Label2') as TLabel).Caption := 'New Label';
end;