Changing the structure of the RadGrid control can be achieved only on the server as shown in the Changing the Grid Structure Dynamically on Postback help article.
On the client-side, you can dynamically show/hide the columns using showColumn and hideColumn methods of the MasterTableView as demonstrated in this project.
The scenario that we will be working on is enlisting all columns in a RadCheckBoxList in a RadWindow and based on the check state we will show/hide the column. To achieve that subscribe to the onItemCheckedChanged event of the RadCheckBoxList. Depending on the check state of the checkbox, the specific column is shown/hidden using the methods mentioned above. Optionally, add a button and subscribe to the click event which is used to select/deselect all checkboxes in the checkboxlist.
* Note that this functionality is supported out of the box when using a header context menu of the RadGrid control