It sounds like your friend is confusing "parsing" with "processing". There's no way a 10MB file should take a minute to parse, much less 30 hours. Mirod's suggestion to parse the XML file and pass the parsed data to a processing subroutine in threads should be better. (Assuming, of course, that it's not a CPU or memory bound task.) That way you don't have to figure out how to parse XML in parallel, which is a can of worms.
When your only tool is a hammer, all problems look like your thumb.