За счетчик, а не за индексом? Например:
int counter = 0;
Parallel.For(4, 500, i => {
// TODO: something useful...
int progress = Interlocked.Increment(ref counter);
Console.WriteLine("{0}: {1}", progress, i);
});
(использование Interlocked
необходимо, чтобы избежать получения расы при доступе к counter
)