If you want something dynamic, you will need dynamic sql code.
Another way to do it would be concatenating the fields (up to 19 with your current length)
select item
from TestTable
cross apply dbo.DelimitedSplit8K(field2 + '|' +
field3 + '|' +
field4 + '|' +
field5 /*+ '|' + fieldN */, '|') f2