You have 2 solution.The first is to use "JQuery" + "Jquery UI (Drag & Drop Features)" in your webpage.This solution is the user friendly one but it is a little complicated for developers that don't have enough information about JQuery, also you have to handle saving last UI changes in DB yourself.You can collect information about JQuery UI in the following links:
http://jqueryui.com
The second solution is the easiest one by using Microsoft asp.net Web Parts controls in conjunction with asp.net membership management.It can save UI state of any user automatically and you don't need to write any code for that.For more information visit this tutorial in MSDN:
http://msdn.microsoft.com/en-us/library/e0s9t4ck.aspx[
^]