GTK is built upon ATK so providing accessibility is a key part of the toolkit and all apps should be designed so that users with limited mobility can use it effectively, e.g. a mouse should not be required. In your case this is good as gtk automatically has the ability to tab between buttons built in and you can add key-bindings to buttons to make this even easier. Unfortunately guidelines for using ATK in GTK is nonexistent in gtk tutorials.
I assume that for whatever key press event you might want that you will also have a button somewhere on the display that will do the same thing. In this case you just add an accelerator to each button. E.g. the following binds control p to a button:
gtk_widget_add_accelerator(button, "clicked", accel_group, GDK_p, GDK_CONTROL_MASK, NULL);