Hola Anna,
"Perdón por hacer eso" no está indicando el tiempo, puede ser algo que estas haciendo en este momento y pides disculpas mientras lo sigues haciendo por ejemplo.
"Perdón por haber hecho eso" es algo que se hizo en el pasado.
Similarmente:
"Perdón por decirlo" se puede usar para algo que estas diciendo en este momento... "Perdón por decirlo, pero creo que ese vestido no te queda bien"
"Perdón por haberlo dicho" es en el pasado. por ejemplo "No sabía que Maria no debía enterarse, se lo he dicho ayer, perdón por haberlo dicho!"
Espero haber clarificado tus dudas.
Un abrazo!
Marina