It's pretty simple: the Caret position in a textbox is given by the SelectionStart property:
private void MyButton_Click(object sender, EventArgs e)
{
int pos = myTextBox.SelectionStart;
string str = "The new text. ";
myTextBox.Text = myTextBox.Text.Insert(pos, str);
myTextBox.SelectionStart = pos + str.Length;
}