Choose your markup based on what is most appropriate for the content in question. If you have tabular data, then it belongs in a table. A list should go in a list. Don't choose based on some idea that "tagX is bad" or because it looks a specific way because appearances can be changed. Ultimately, anything can look like just about anything else, so just choose the proper foundation.
A table is not my first choice of markup for this type of content, but it would be acceptable.
http://jsfiddle.net/dcWsp/
table, tbody {
display: block;
}
tr {
display: block;
overflow: hidden;
margin: 1em 0;
}
td {
display: block;
}
td.avatar {
float: left;
margin-right: 1em;
}
td.author {
font-weight: bold;
}
<table>
<!-- loop starts here -->
<tr>
<td class="avatar"><img src="http://placehold.it/100x100" /></td>
<td class="author">Batman</td>
<td class="message">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus porta elit vel ante hendrerit facilisis. Curabitur aliquam sollicitudin diam, id posuere elit consectetur nec. Vestibulum quam dolor, feugiat in posuere a, posuere imperdiet tellus. Mauris sed ligula vitae urna consequat aliquet.</td>
</tr>
<!-- loop ends here -->
</table>
Here's another way of marking it up and styling it that looks virtually identical:
http://jsfiddle.net/dcWsp/2/
article {
overflow: hidden;
margin: 1em 0;
}
img.avatar {
float: left;
margin: 0 1em 1em 0;
}
h1.author {
font-weight: bold;
}
<section class="comments">
<!-- loop starts here -->
<article>
<h1 class="author"><img src="http://placehold.it/100x100" class="avatar" /> Batman</h1>
<p class="message">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus porta elit vel ante hendrerit facilisis. Curabitur aliquam sollicitudin diam, id posuere elit consectetur nec. Vestibulum quam dolor, feugiat in posuere a, posuere imperdiet tellus. Mauris sed ligula vitae urna consequat aliquet.</p>
</article>
<!-- loop ends here -->
</section>