Mark Rackley came up with an ingenious way of hijacking SharePoint's default list forms and rearranging them using your own HTML layout, which you can then style however you want.
You need a little bit of scripting knowledge (and ability to use jQuery definitely helps for grabbing and moving DOM elements), but the great thing about using this technique is that you use the edit controls (textboxes, people-pickers, date controls, etc) that SharePoint already generated, and moving them around does not disconnect them from the list, so you don't have to worry about the back end connections.
You can move stuff around however you like, and the form still works, so you don't necessarily need to go through the process of using JSOM or REST API to interact with the list.
The detailed instructions can be found on his blog
NB: this is for SharePoint 2013 (and I assume Online would work as well), not sure if there is a way to do this in 2010.