Assuming the strings need to be sent in the order they are received (I'll look into another solution in case this assumption is incorrect)
Try something along the lines of:
IList<string> strings;
IList<string> messages = new List<string>();
StringBuilder bldr = new StringBuilder();
for (int i = 0; i < strings.Count; i++)
{
if (bldr.Length + strings[i].Length > 160)
{
messages.Add(bldr.ToString());
bldr.Clear();
}
bldr.Append(strings[i] + " ");
}
messages.Add(bldr.ToString());