What you are talking about is pretty much "swapping byte values" in effect.
Try this:
private static string Reverse(string str)
{
StringBuilder sb = new StringBuilder(str.Length);
for (int i = str.Length; i > 0; i -= 2)
{
sb.Append(str[i - 2]);
sb.Append(str[i - 1]);
}
return sb.ToString();
}