El button1.Parent, tendrás que asignarle "el frame" que quieras, el Grid, o donde quieres que salga.
Dado que lo has creado con el parámetro "Self" en TButton.Create(Self), no hace falta que lo liberes en el destroy, eso lo hará su dueño, el Self, que es el Form donde se ha creado.
Lo que intuyo es que al hacer un scroll del Grid, los botones se van a quedar fijos y no creo sea lo que quieras.
En ese Delphi no puedo ayudarte, ya que no lo tengo. Otra cosa es pintar el botón en el recuadro de una columna, así "hace parecer que es un botón", pero solo es pintura. Ojalá esto te sirva:
www.clubdelphi.com/foros/showthread.php?t=74688
Saludos