Yeah, you can save the table's column property to the database for a particular user. There is a property dragOrderable that allows the user to order columns, in my experience, this only works when the columns are defined in the columns property.
The important thing is when you reorder in the session, that property will also get reordered. That takes care of your column orders.
Within each object that's in the columns list, there are strictWidth (boolean) and width (int) properties. As far as I can tell, the designer doesn't update any values when I resize the columns, so I don't think you'll be able to save those, unfortunately. What you can do is to create an additional widget on your view that has the table with a column selector and a width numeric entry field that you can then enable the strictWidth property on the column the user selects, and put their entered width into the appropriate column's width. The width property is in pixels and you don't specify the units, as far as I remember.
Then, you'd proceed just like before, save the columns object to the database (and, of course, read it whenever the view is opened).
