It's not true that every window has three buttons. Some have three as you say, some have 1 as is the case of message dialogs (as far as I know) and some can even have four (e.g. minimise, maximise, destroy, resize). As I indicated in my previous post, this is controlled by the window manager, not by GTK. GTK has, however, control over describing what kind of a window it is to the window manager. This is done through the aforementioned function
gtk_window_set_type_hint() you can experiment around with them but will probably find the _NORMAL type hint will give you the closest behaviour to what you want.
But honestly, why would you want a modal dialog to act unlike a modal dialog. There's a very good reason why these windows don't have minimise and maximise buttons; putting in these features doesn't add to your program but detract from it.
Let's say it gets minimised and the user doesn't notice this or forgets it (or there might be multiple users). The user is left with an unresponsive program with no clue as to why. Unless they discover that minimised window, they will swear and curse at the programmer and then kill the program loosing whatever work they have done. As for maximising there's not enough text in your dialog to warrant that.
Seriously leave it be.