A GtkTearoffMenuItem will only work for a full menu, not for part of one. It therefore needs to be prepended so that it takes the 0 position in the GtkMenu where it is used:
<?php $menu = &new GtkMenu(); $tearoff = &new GtkTearoffMenuItem(); $menu->prepend($tearoff); ?>