It's a bit of a broad question, but to accomplish this task you'll definitely need to utilize Javascript/jQuery.
I recommend exploring the jQuery UI library, specifically focusing on http://jqueryui.com/demos/draggable/ for draggable elements.
Considering you're working on an Asp.Net site with potentially dynamic content for the menu, I suggest starting by creating a static version of the desired menu using Html, CSS, and jQuery. Once you have this foundation functioning correctly, you can then proceed to develop an Asp.NET user control or a customizable custom control that will generate the necessary html/JS/css markup based on dynamic content.