Yo no veo inconveniente en usar un DBGrid para estas actualizaciones, pero como ya ha dicho Rufus antes... es cuestión de gustos.
Sobre lo que comentas de las existencias, depende mucho de las capacidades de tu base de datos. En el caso de forebird, esta tiene triggers, y es preferible realizar estas actualizaciones desde ellos, asi la base se mantiene siempre consistente, e incluso los datos montados desde isql o cualquier cliente son tomados en cuenta.
Si la aplicación es multipuesto, lo que ocupa es el momento de lanzar las actualizaciones para conseguir el mínimo tiempo de bloqueos y que la aplicación sea funcional.
Hasta luego.