Centering a site horizontally is pretty easy, I actually wrote a post yesterday on how to do this.
Center your page content.
As for making columns, the trick is to float them all to the left or right, left is more natural, because the first one you code will bar on the left, if you float right then it seems like you're working backwards, right to left. It looks like they're using a fixed width. If your content area is 900 pixels apart and you want three equally wide columns with 15 pixels between each column, then you would set your area up like this.
CSS
Code:
div#columns {width: 900px; padding: 0; margin: 0;}
div.column1 {width: 290px; margin: 0; float: left}
div.column2 {width: 290px; margin: 0 15px; float: left;}
div.column3 {width: 290px; margin: 0; float: left;}
.clear {clear: both;}
HTML
Code:
<div id="columns">
<div class="column1">
left column content
</div><!--end left column-->
<div class="column2">
middle column content
</div><!--end middle column-->
<div class="column3">
right column content
</div><!--end right column-->
<div class="clear"></div>
</div><!--end columns-->
For the items in the column you would want to use classes to repeat the styles for multiple elements. Like for the new release area I would create a newRelease class, and then nested in the class I would have a class for the image, and float it right. I would have a class for the title, and another for the information. Actually I would probably use a definition list <dl> for the details, a definition term <dt> for the title, and the definition descriptions <dd> for the details. As for the rounded corners you can use images, or if you're not worried about the corners showing up in IE, you can use webkit and moz CSS to get the corners in Firefox & Safari.