You can't break out of a for-each loop because it isn't a loop. You have to imagine that all the items in the input sequence are processed in parallel, so processing one item can't influence how or whether subsequent items are processed.
Just select the items you want to be processed in the select expression for example
select="(//node)[position() <= 20]
to process the first 20 elements named "node".
If you really do need the processing of one item to depend on the result of processing previous items, you need to use recursion rather than for-each. There's the best part of a chapter in my book on this.
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference