I want to know if I can build the main part of a RadGrid declaratively and e.g. the template columns came from an other class that implements ITemplate.
RadGrid does not support mixing declarative grid columns with grid columns added dynamically at runtime. You should either create all the columns in the grid programmatically, or else define them all in the ASPX file. You can fing out the same mentioned in the follwoing help document: Programmatic creation