From the perspective of RadGridView, there is no difference between defining the columns in XAML or code behind. This applies to all your three questions, regarding Performance, Features and Maintainability.
You can also check our online documentation on Defining Columns
Generally I would suggest you checking the Tips and Tricks suggestions on improving performance.
Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos
and start improving your app based on facts, not hunches.