Hola.
Si usas el Timer, el conteo se hace independientemente.
Supongamos que quieres una espera de 1 segundo: Si lo haces con una funcion -con delay_ms(1000);-, durante todo ese tiempo, el PIC no hara nada mas, pero si lo haces con un Timer, puedes seguir con tu codigo normalmente, el conteo lo hace el Timer independientemente.
Diferencias no hay muchas, la forma de configurarlo mas que todo. Revisa el manual de tu compilador para que notes la diferencia.
Saludos