Si logras hacerlo con onDrawCell tonces prueba usar una Bandera.
Algo así:
var BotonPresionado: Boolean;
procedure TFrom.TButtonClick(Sender: TObject);
begin
BotonPresionado := True;
end;
procedrue TForm.TStringGridDrawCell(Sender: TObject.....);
begin
if BotonActivado then
begin
...
tu codigo aca
...
BotonActivado := False;
end;
end;
O sea, si se presionó el boton, drawCell hace algo, si no, no hace nada.