You can Follow the implementation of such a feature in the following page (I added your Vote for you): https://feedback.telerik.com/blazor/1414050-save-grid-layout. It would require a lot of other things as base though, such as programmatic filtering, sorting and so on (also available in our Feedback Portal if you want to follow them - here, here, here, here).
The way to get information for columns is to define a view model with the data you want and use that to fill in the columns collection. A similar example is available in the following pages:
You can use this approach to apply settings to the grid when it initializes, but extracting that information is mostly unavailable at the moment. You could handle the OnRead event to implement all read operations yourself, and to store the DataSourceRequest object from which you could extract information about filter, sort and group state, but it would not be easy, and information about column sizes and orders is not available there.
UI for Blazor