Чтобы просто вставить текст в позицию каретки:
textBox.Text = textBox.Text.Insert(textBox.CaretIndex, "<new text>");
Чтобы заменить выделенный текст новым текстом:
textBox.SelectedText = "<new text>";
Для прокрутки текстового поля в позицию каретки:
int lineIndex = textBox.GetLineIndexFromCharacterIndex(textBox.CaretIndex);
textBox.ScrollToLine(lineIndex);