xargs does nothing to prevent interleaving of output from simultaneously executed commands.
... | xargs -P10 -i sh -c 'command {} 1>{}.out 2>{}.err'
or maybe with tee:
... | xargs -P10 -i sh -c 'command {} | tee -a {}.out'
It is definitely not something I would dare to run in production.