That would be a very hard thing to do, as it involves a lot of COM and undocumented features within Office.
For the most part you don't need to write one as MS Office does a very good job of it.
Check the following link on how to use Word's spell check in C# :
Using Word's spellchecker in C#[
^]