If you add children to a GtkVBox with gtk_box_pack_start/end_defaults(), then all of the children will expand. You can use the widget's homogenous property to enforce the same size. If you want them to use different sizes, use gtk_box_pack_start/end(). (You can experiment with how the expand, fill, and padding parameters of this function work in Glade.)
You can force a widget to a size with gtk_widget_set_size_request(), although this request may not be honored if GTK+ sees fit (it is too big/small). Find out more about this function here:
http://library.gnome.org/devel/gtk/unst ... ze-request
The GtkContainer has a small explaination about size allocation in GTK+:
http://library.gnome.org/devel/gtk/unst ... #id4092216
In addition, my book (Foundations of GTK+ Development) has a whole chapter dedicated to container widgets, and issues such as this. I hope this helps!