Вы можете посмотреть на источник этих функций GTK и увидеть, как они реализованы для бэкэнда X11:
gtk_window_set_keep_above()
gtk_window_set_keep_below()
gtk_window_set_transient_for()
Я думаю, что это лучший способ узнать, как вы можете это сделать, безусловно, решение, принятое GTK, должно быть переносимым.