Hola Miguel:
cuando he tenido que desarrollar un programa de facturacion, lo he hecho insertando TEXTBOX, uno por cada campo, es decir 1 x codigo, 1 por descripcion, 1 x cantidad y ..... luego con un boton los insertaba en un MSFLEXGRID, luego con un boton Grabar, mediante un procedimiento grababa los datos del MSFLEXGRID a la tabla. De esta forma se trabaja muy bien, puede parecer un poco lenta, pero, en mi caso, el usuario modificaba los datos, eliminaba, insertaba y no tenia problema. Ahora, estoy trabajando con un MSFLEXGRID "Editable", como sabras el MSFLEXGRID es de solo lectura, para tener ese efecto he tenido que insertarle un TEXTBOX y lo voy moviendo dentro del MSFLEXGRID.
Te envio un ejemplo, solo permite numeros y segun el turno que estoy, tal ves te pueda servir, esta adecuado a lo que necesitaba en su momento, seria cuestion que lo adecues a lo que quieres.
Cualquier duda escribe nomas.
Saludos;