In your shoes I would first speak to someone well-versed in employment law and see if their actions constitute a breach of trust. Their actions have clearly affected your working relationship to a point at which it is untenable (and I have to say I am impressed with your level of professionalism thus far - not sure I could manage that!).
I think it's optimistic to assume that your working relationship will improve over time, and I believe that assuming it's not breaking the law you should get him out as soon as possible.
When you say
he's put too much work into the company to just get fired just because I'm the boss.
I would say that any potential firing would not be 'because you're the boss': it would be primarily driven by the lack of trust in your relationship (I cannot see how you could ever trust him again).
His tone seems to be quite arrogant, and this may spill into his working practices (which I would investigate as much as you can) - being. Being the most versed in the company in a given area does not mean that you are necessarily working apropriatelyappropriately, or that no one else could come in and improve performance.