This is a very open-ended question. The question really isn't how fast you can get through for loops as that's "very fast" if the loop isn't doing anything. What you are probably looking at is this instead "why does it take so long to finish the processing that's going on inside the for loop?"
This is a vastly different question, and we can only give some broad brush answers here. First of all, you really need to profile what is going on inside the loops. I would recommend that you use a good application profiling tool here; I'm a big fan of
dotTrace Profiler[
^]. This tends to be my "go to" tool when I'm performance tuning.
You also need to set some reasonable expectations about what consitutes "good performance". If, for instance, you are creating a report that contains 1000s of pages, gathering data from dozens of systems, then expecting that it will be done in 100ms is pretty unrealistic. If it takes 20 minutes, that's probably okay. If it takes a week, it's not. So, know what you're measuring.