That code doesn't make much sense - I can tell you haven't even executed it, because you would get an Index out of range error - you are looping ten times, and have on eight items in your listbox.
You do realize that every Collection has a Count parameter? Which tells you how many items are in the collection? And that string concatenation is very inefficient - you should use a StringBuilder instead?
So to access the last four items:
int itemCount = listbox3.Items.Count;
StringBuilder sb = new StringBuilder();
for (int i = itemCount - 4; i < itemCount; i++)
{
sb.AppendFormat("{0}\n", listBox3.Items[i]);
}
msg = sb.ToString();