Html.BeginForm doesn't return a string, it writes directly to the page. This is why you don't get the form tags in the column contents.
The solution would be to write the tags manually.
Edit:
<form action="/Messages/Resend" method="post">
<input type="hidden" name="outgoingMsgId" value="@entity.MsgID" />
<input type="submit" value="@entity.PersonName" />
</form>