The problem with NthField in a loop is that every time you call it you are starting fresh from the string and splitting it up, over and over again.
As for Sascha’s suggestion I would think it would be better to not remove the elements from the array as you work through the array. It’s a memory manipulation that you don’t need to do. Surely the following would be faster:
Var strBigSplit(-1) As String = Split...bigchunkofstrings
Var strSmallSplit(1) As String
For Each ThisString as String in strBigSplit
strSmallSplit = ThisString.Split( inner_delimiter )
AddRow strSmallSplit(0) // Splitted
RowTag() strSmallSplit(1) // :-D
Not changing the size of the array in every loop surely must be an advantage.