Putting the with/end with inside the loop doesn't look particularly efficient so I tried putting it outside and got significant speed improvements. It still doesn't run as fast as I would like but it's better than nothing.
Code:
Sub aTest()
Dim iRev As Long
With ActiveDocument.Range.Revisions
For iRev = .Count To 1 Step -1
If iRev Mod 10 = 0 Then Debug.Print iRev, .Item(iRev).Type
Next iRev
End With
MsgBox "Stage 1 done"
For iRev = ActiveDocument.Range.Revisions.Count To 1 Step -1
With ActiveDocument.Range.Revisions(iRev)
If iRev Mod 10 = 0 Then Debug.Print iRev, .Type
End With
Next iRev
MsgBox "Stage 2 done"
End Sub