GtkImage won't help you for your application as it is really only for showing static images. To do what you want, you may as well use a drawing area and then whenever you receive an exposed or resize event, just redraw your vector data through cairo.
You may also want to check out the tutorial for my GtkImageViewer widget, which comes with a tutorial showing how you draw scalable data through cairo or agg. See:
http://giv.sourceforge.net/gtk-image-viewer/gtkimageviewer_tutorial.html
Look for agg-circles.c and cairo-circles.c .
A third option is using a canvas widget, e.g. goocanvas.
Regards,
Dov