In 2.5 it is possible to resize the width of columns using drag and drop.
Re-ordering the same columns is currently not an option.
Once you come back to the same grid it will render according to the values set in the Modeler.
There is a very good reason why grids always render according to the modeled values.
If you allow people to re-order grids and expect them to render the same way in a new session you have to store that state, somehow. The next time that grid gets rendered it will have to fetch that state data from the server and use that data to render the grid.
That in itself is not an insurmountable problem. It does, however, require server-side storage for user-session dependent variables. Which have to be placed in the Model. In addition to polluting the Model with this information you also have to deal with changes made in the forms. If you add columns to a grid, it's not the same grid anymore and you now have to find a case for rendering the new column layout joined with the state that this grid had at some point in the past for this specific user.
From here on the problems just multiply.
I'm sorry that we don't do state-saving of re-ordered grids, but this is a design decision. The engineering effort that would go in making this work is just ridiculous. There are web applications that have this functionality, but they use fixed grids and layouts and are just one application. Whenever they change layouts/grids they all throw out the user-settings and expect their users to run with the defaults again.
There is no way to do this with the standard datagrids. Possibly you could make a custom widget but I wouldn't recommend it since the datagrid is a fairly complex widget. You could also file a feature request.