puede ser porque estas usando un query. Si lo cambias a un table, seguro que te deja modificarlo. Esto es, supongo, porque estas intentado modificar una consulta, y eso no es posible. Si quieres podrias hacer algo un poco mas complicado, pero que te de el mismo resultado. ¿como?
1º dejas todo como esta.
2º pones un evento onclick en el dbgrid, y dentro de ese evento, capturas algun campo de la consulta, preferentemente algun campo clave (key).
3º con un componente ttable, apuntando a la tabla que quieres modificar, la recorres por codigo en el evento del punto 2, hasta que el campo de la tabla concuerde con el campo capturado del dbgrid. Asi ya estaras posicionado en el mismo registro, del query que de la tabla.
4º ya simplemente modificas el objeto ttable, con lo que quieras y ya ta.
No se si me he explicado muy bien, pero bueno, sino, dimelo e intentare mandarte algun codigo...
Adios,
Antonio