Есть несколько способов сделать это, с плавающей точкой или с разметкой таблицы. Между сторонниками таблицы и сторонниками поплавка есть какая-то священная война. Я слегка склоняюсь к раскладке стола, но у обоих есть свои достоинства. Я отвечу за табличную сторону:
<table style="table-layout:fixed;width:100%">
<colgroup><col style="width:33%"/><col style="width:33%"/><col style="width:33%"/></colgroup>
<tr>
<td style="vertical-align:top">
<div style="border:1px solid red">
column one with some long text that should wrap but still keep the column at 33%
</div>
</td>
<td style="vertical-align:top">
<div style="border:1px solid green">
column two
</div>
</td>
<td style="vertical-align:top">
<div style="border:1px solid blue">
column three
</div>
</td>
</tr>
</table>
Вот пример:
http://jsbin.com/axojo