Add these to the bottom of your stylesheet to see a start to organization.
Code:
#productAttributes {background-color: #ddffdd; border: 1px dotted #ff9999;}
h4.optionName {display: block; float: none;}
.wrapperAttribsOptions {width: 24%; height: 6.5em; float: left; background-color: #aabbff; margin: 2px; text-align:center;}
.wrapperAttribsOptions .back {float: none;}
.wrapperAttribsOptions+br {display: none;}
label.attribsInput {line-height: 1.2em;}
h3.attributesComments {display: none;width: 23%; border-bottom: 1px solid red; background-color: #ffaaaa;}
/* ^ had to hide these because they mess up the layout - add wrapper to enclose this and wrapperAttribsOptions*/
#productTellFriendLink {clear: left;}
There are a few things that you will need to change in the PHP.
The attribute comments are "loose" before the .wrapperAttribsOptions they belong to, and both need to be bound in a wrapper so they stick together. The styling above hides the comments for now so the layout can be seen.
You need to remove the <br class="clearBoth" /> after each .wrapperAttribsOptions (the CSS above disables it for now), and probably add a new one at the end of the #productAttributes div. (The #productTellFriendLink {clear: left;} helps for now, but the br is necessary to give a boundary to the whole productAttributes section.)
Plenty more can be done; this is a taste of the possibilities.