Guarda che Cursor è riferito al mouse.
Infatti se fai clic col mouse cambia Cursor.Position, altrimenti nisba.


Tu devi riferirti al caret, e ti basta usare la proprietà SelectionStart,
che va usata nell'evento KeyUP (non nel KeyDown).

codice:
private void richTextBox1_KeyUp(object sender, KeyEventArgs e)
{
    int charPos = richTextBox1.SelectionStart;
}