ich habs nach etwas Googeln inzwischen gefunden. Ich habe zuvor mit dem Suchbegriff "Firemonkey StringGrid OnDrawCell" gesucht, das gab nix. Wenn ich mit "FMX" (danke mkinzler) statt "Firemonkey" suche, dann finde ich was. Anscheinend hat sich "FMX" als Bezeichner für Firemonkey etabliert.
Zum Ergebnis:
Ich kann natürlich zur Laufzeit auf die Zelle zugreifen. Ich palziere mir den Button in die Column und ändere beim OnSelectedChanged des Grids den Container (Parent) des Buttons.
Code:
meinButton.Parent := meinGrid.Columns[0].CellControlByRow(meinGrid.Selected);
so ist der Button nur in der jeweils selektierten Zeile zu sehen.