The ever-present, over-achieving Hallvard Vassbotn has just posted an excellent analysis of how the Delphi compiler generates code for the "for-in" statement. He also presented many suggestions on how to make this as efficient as possible. I will be taking his suggestions back to the team to get folded into the next release. You should also be sure to read Primoz Gabrijelcic's blog posts on writing enumerators.
I noticed that I haven't gotten any "bites" on my challenge to spot the deadlock... Since returning to the office after my trip to Kona, HI, I've been working on several things not related to multi-core, thread-pooling, paralleling, etc... Mostly surrounding the next Delphi/C++Builder release. I'll come back to threading soon.