Stumbled across this, and found that the accepted answer is incorrect, or at least is no longer correct in current versions of Glade.
From within Glade, you can adjust the Position property under the Packing tab, whose value determines the index of the widget within its parent.
So in OP's example:
box1 (GtkBox)
|--button1 (GtkButton) (Position: 0)
|--button2 (GtkButton) (Position: 1)
|--button3 (GtkButton) (Position: 2)
Each button would have a Position value of 0, 1, and 2 respectfully. If you were to change the Position value of button2 to 0, it would move it up and button1 would then have a Position value of 1, which changes the order both in the tree and how it is displayed in the designer and final application.
box1 (GtkBox)
|--button2 (GtkButton) (Position: 0)
|--button1 (GtkButton) (Position: 1)
|--button3 (GtkButton) (Position: 2)