Unless you're doing a lot of really complicated stuff, I'd wonder how you're noticing your CPU spinning for an noticeable period of time crunching only 1000 rows. You can do some serious work on a modern server in a very short period of time so long as the data is already in memory (which it sounds like it is in your case).
Are you doing things like repeatedly iterating over the items (ie. nested loops) when using a dictionary would work better? Take a close look at what you're doing and consider how many times each line of code actually runs.
Some code I worked on last week had to evaluate a series of complex security rules on about 500,000 objects. The end code took about 3.5 minutes to run -- 2 minutes to load from the DB, 10 seconds to process, and 1 minute 20 seconds to write the results out to the result file. Once you have everyting in memory, if you make sure you don't loop over data more times than you need, things can be surprisingly fast.