Hola. De verdad que lo has enredado un poco.
He intentado decirte ya antes que el dbGrid no formatea por si mismo los campos. Esto se define a nivel del DataSet asociado, con las propiedades
DisplayFormat y EditFormat. Estas podes establecerlas en tiempo de diseño o en tiempo de ejecución sin ningun problema.
Por tanto podes hacer algo como:
Código Delphi
[-]
Query1.sql.Text := 'Select codigo, descripcion costo from articulo';
Query1.open;
Query1.FieldbyName('costo').DisplayFormat := ',#0.00';
Y veras como salen "formateados".
Hasta luego.