Il problema è che così dovresti creare i button a runtime. Puoi provare invece a fare una cosa del genere:
var
i : Integer;
begin
for i := 0 to ComponentCount-1 do
if (Components[i] is TButton) then
TButton(Components[i]).Caption := 'Bu!';
In questo modo ti cambia la caption di tutti i button sul form. Puoi estendere ulteriormente il codice, controllando il valore della proprietà "tag" del button e decidere, a seconda del valore trovato, se cambiare o meno la caption. Ad esempio, impostando a 1 la proprietà tag dei button ai quali devi cambiare la caption, il codice diventa:
var
i : Integer;
begin
for i := 0 to ComponentCount-1 do
if (Components[i] is TButton) then
if TButton(Components[i]).Tag = 1 then
TButton(Components[i]).Caption := 'Bu!';