First - you can build repeated elements using this GrammarBuilder constructor: GrammarBuilder (GrammarBuilder, Int32, Int32)
.
Second, you can add words to the dictation grammar using Lexicons. Unfortunately, the lexicon interfaces in SAPI are not exposed via System.Speech.Recognition, so your choices are either to use C++ and native SAPI, or to use Speechlib and the SAPI automation wrappers.
Alternatively, if you don't need to do this via code, you can use the speech dictionary that's part of Windows Speech Recognition.