
  She had eyes so far apart from each other that looking at them made me feel dizzy.


No, you cannot drop the subordinating conjunction that here. A subordinating conjunction is necessary to connect the two parts of the sentence. 

Sometimes a subordinating conjunction can be dropped, but not in this case. Usually we omit a subordiating conjunction after a "reporting verb" like to tell, learn, discover, feel etc.:


  She had eyes so far apart from each other! I told her (that) they made me feel dizzy. I really felt (that) they made me dizzy. 


Had it been a relative pronoun, you also could've dropped it:


  I felt dizzy looking into those beautiful eyes (that) she had. 


Here, we can omit the relative pronoun that because it serves as the object of the relative clause "that she had". 


  She had what? She had [that]. (She is the subject, that is the object)


Can I omit "that" in the following case?
Everything works fine except for one thing.  My program prints "player hit" 2 times then "mob hit" 2 times and then "player hit" 2 times again and so forth.  I want it to type "player Hit" "mob Hit" "player Hit" "mob Hit" and so on.  I can't see why it types it 2 times.  

My code looks like this:

public partial class Form1 : Form
{
    public Form1()
    {
        int Rase1 = 0;

        InitializeComponent();

        timer1.Tick += new EventHandler(timer1_Tick);
        timer1.Interval = (1000);
        timer1.Enabled = false;

        timer2.Tick += new EventHandler(timer2_Tick);
        timer2.Interval = (1000);
        timer2.Enabled = false;
    }

    private void buttonChoseRase_Click(object sender, EventArgs e)
    {
        if (Rase1 == 0)
        {
            Rase1 = 1;
            Rase Rase = new Race(this);
            Rase.Show();
        }
        else if (Race1 &gt;= 1)
        {
            buttonChoseRase.Enabled = false;

            Rebirth Reb = new Rebirth(this);
            Reb.Show();
        }
    }

    private void buttonStart_Click(object sender, EventArgs e)
    {
        textBoxCombatLog.Text = "";

        buttonStart.Enabled = false;
        buttonStop.Enabled = true;

        timer1.Start();

        timer2.Stop();
    }

    private void buttonStop_Click(object sender, EventArgs e)
    {
        buttonStart.Enabled = true;
        buttonStop.Enabled = false;

        timer1.Stop();
        timer2.Stop();
    }

    private void LogWrite(string txt)
    {
        textBoxCombatLog.AppendText(txt + Environment.NewLine);
        textBoxCombatLog.SelectionStart = textBoxCombatLog.Text.Length;
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        LogWrite(TimeDate + "Player Hit \n");

        timer1.Stop();

        timer2.Start();
    }

    private void timer2_Tick(object sender, EventArgs e)
    {
        LogWrite(TimeDate + "Mob Hit \n");

        timer2.Stop();

        timer1.Start();
    }

    private string TimeDate
    {
        get { return "[" + DateTime.Now.ToString("HH:mm:ss") + "]" + ": "; }
    }
}




Here is what is looks like running, and no matter what I do, everything shows up twice:


