Вы можете сохранить положение курсора до внесения изменений, а затем восстановить его:
int i = richTextBox1.SelectionStart;
richTextBox1.Text += "foo";
richTextBox1.SelectionStart = i;
Возможно, вы захотите сделать то же самое с SelectionLength, если не хотите удалять выделение. Обратите внимание, что это может вызвать странное поведение, если вставленный текст находится внутри выделения. Затем вам нужно будет расширить выделение, включив в него длину вставленного текста.