Du kannst ja mal versuchen, ein Sleep(1)
zwischen die Generierung zu setzen. Bei 100 GUIDs hast du dann eine Verzögerung von 100 ms. Das ist zwar nicht schön, aber besser als kollidierende GUIDs.
Oder einfach das letzte
GUID zwischen speichern und nur bei Gleichheit einfach kurz warten und dann nochmal die Routine aufrufen...