Hola 
gedard1!!!
1º Bienvenido al Foro!!.
2º Ya logré modificar y al parecer ya no cae en problemas, trata de analizar el código :    
Código C:
Ver originalpublic partial class Form1 : Form
    {
        string[] Reservadas = new string[] { "else", "if" };
        int posicion = 0;
 
          public Form1()
        {
            InitializeComponent();
            {
            ejecucion();
 
            this.richTextBox1.SelectionStart = this.richTextBox1.Text.Length;
 
            this.richTextBox1.TextChanged += (ob, ev) =>
                {
                    posicion = richTextBox1.SelectionStart;
                    ejecucion();
                };
 
            }
        }
 
        private void ejecucion()
        {
            this.richTextBox1.Select(0, richTextBox1.Text.Length);
            this.richTextBox1.SelectionColor = Color.Black;
            this.richTextBox1.Select(posicion, 0);
 
            string[] texto = richTextBox1.Text.Trim().Split(' ');
            int inicio = 0;
 
            foreach (string x in texto)
            {
                foreach (string y in Reservadas)
                {
                    if (x.Length != 0)
                    {
                        if (x.Trim().Equals(y))
                        {
                            inicio = this.richTextBox1.Text.IndexOf(x, inicio);
                            this.richTextBox1.Select(inicio, x.Length);
                            richTextBox1.SelectionColor = Color.Red;
                            this.richTextBox1.Select(posicion, 0);
                            inicio = inicio + 1;
                        }
                    }
                }
            }
        }
 
    }
  
Saludos!

.