What's the rest of your environment like? Is this repeatable?
At least on a UNIX box, a long running single process like that is likely to get nice-ed down in priority; if you have 10 threads, each one gets its own slice of the CPU, and so won't accumulate as much CPU time. It will then not lose priority to nice-ification. Overall, it gets a bigger total chunk of CPU.
Added
Just for completeness, this is what your code gives on a dual core mac mini under OS/X 10.5.6
527 $ java MultithreadedCompute
Creating workers
Starting workers
Computing sum 100000000 + ... + (200000000 - 1)
Computing sum 0 + ... + (100000000 - 1)
Computing sum 400000000 + ... + (500000000 - 1)
Computing sum 200000000 + ... + (300000000 - 1)
Computing sum 500000000 + ... + (600000000 - 1)
Computing sum 600000000 + ... + (700000000 - 1)
Computing sum 700000000 + ... + (800000000 - 1)
Computing sum 800000000 + ... + (900000000 - 1)
Computing sum 900000000 + ... + (1000000000 - 1)
Computing sum 300000000 + ... + (400000000 - 1)
Joined with thread 0
Joined with thread 1
Joined with thread 2
Joined with thread 3
Joined with thread 4
Joined with thread 5
Joined with thread 6
Joined with thread 7
Joined with thread 8
Joined with thread 9
Summing worker totals
total=499999999500000000
Elapsed time: 3217 ms
528 $ java SingleThreadedCompute
total=499999999500000000
Elapsed time: 5651 ms
529 $
As you can see, the threads don't necessarily run sequentially, and the run time fof the multithreaded is about 56 percent of the singe thread, indicating it is taking advantage of the threading.