You need to explicitly create the columns yourself rather then allow the GridView to generate them for you. If you do this you will be able to order them however you like and rename them as well.
Here is an example (the headertext property will allow you to rename the column):
<asp:gridview id="foo" runat="server" autogeneratecolumns="false">
<columns>
<asp:boundfield datafield="ID" headertext="Identifier" />
<asp:boundfield datafield="Name" />
<asp:boundfield datafield="Class" />
<asp:boundfield datafield="Course" />
</columns>
</asp:gridview>