Gracias muchachos en realidad han sido de gran ayuda, en serio es de agradecer.
Aqui les dejo como lo resolvi (con su ayuda, claro) sirve que me dicen si es correcto y si lo es, seguro a otro compañero novato le servirá:
Con el mismo TIBDataSet, en las propiedades:
SelectSQL:
select A.ID, A.NOMBRE, A.DIRECCION, A.COLONIA, A.CP, A.CIUDAD_ID, CIUDADES.NOMBRE CIUDAD, A.TELEFONO1, A.TELEFONO2
from CLIENTES A
join CIUDADES on (A.CIUDAD_ID = CIUDADES.ID)
where A.ID = :OLD_ID
ModifySQL
update CLIENTES
set CIUDAD_ID = :CIUDAD_ID, CP = :CP, DIRECCION =
IRECCION, ID = :ID, NOMBRE = :NOMBRE, TELEFONO1 = :TELEFONO1,TELEFONO2 = :TELEFONO2
where ID = :OLD_ID
InsertSQL
insert into CLIENTES
(CIUDAD_ID, CP, DIRECCION, ID, NOMBRE, EMAIL, TELEFONO1, TELEFONO2)
values
(:CIUDAD_ID, :CP,
IRECCION, :ID, :NOMBRE, :EMAIL, :TELEFONO1, :TELEFONO2)
RefreshSQL
select A.ID, A.NOMBRE, A.DIRECCION, A.COLONIA, A.CP, A.CIUDAD_ID, CIUDADES.NOMBRE CIUDAD, A.TELEFONO1, A.TELEFONO2, A.EMAIL
from CLIENTES A
join CIUDADES on (A.CIUDAD_ID = CIUDADES.ID)
where A.ID = :OLD_ID
Con esto ya se puede editar directo en el DBGrid, aunque yo no lo uso ya que puse un Form para la edicion, pero me sirve para actualizar los datos mediante el procedimiento IBDataSet.Refresh y asi se actualizan los datos en el DBGrid