For a RadGrid bound to a collection of objects, if the object has properties with a DisplayName or other DataAttributes, those attributes should be applied to the column. DisplayName should set the text in the header of the column.
Creating in code behind is normally the last thing anybody is going to want to do, non-code behind solutions will be a must going forward
This could be easily achieved by creating grid columns entirely in code behind and get different properties from the objects to which the grid is bound. Information about how to create the grid’s column programmatically you can find here: http://www.telerik.com/help/aspnet-ajax/grid-programmatic-creation.html