


<p style="font-size: small; background: url(http://moodle.org/mod/forum/icon.gif) no-repeat; height: 16px; padding-left: 21px; margin: 0px 0px 0.6em;"><a href="#">Forum</a></p>
<p style="font-size: small; background: url(http://moodle.org/mod/resource/icon.gif) no-repeat; height: 16px; padding-left: 21px; margin: 0px 0px 0.6em;"><a href="#">Resource</a></p>
<p style="font-size: small; background: url(http://moodle.org/mod/glossary/icon.gif) no-repeat; height: 16px; padding-left: 21px; margin: 0px 0px 0.6em;"><a href="#">Glossary</a></p>
Here "height" - height of an icon, "padding-left" - width of an icon (plus some space), "margin" set to minimize space usage.
<p> element is used because it is short. Why use tables?
Also you can set "clear: both" to avoid floating elements.
Just use same class ("activity") with style (font-size: small; height: 16px; padding-left: 21px; margin: 0px 0px 0.6em;) for all such paragraphs. And additional class ("resource", "forum", "lesson" etc.) with different background image (background: url(someimage.gif) no-repeat;).