Le problème c'est que pour ajouter des espaces après chaque point. Le plus simple c'est de lire le fichier source et écrire un fichier de destination.
Tu peux pas ajouter un caractère comme ça au milieu d'un fichier sans devoir tout décaler le reste. un fichier c'est comme un gros tableau de bytes, si on veut intercaler un caractère ailleurs qu'à la fin, faut tout décaler.
Quant à l'usage de plusieurs threads, c'est pas une bonne idée pour la raison ci dessus. Et encore moins si tu penses que c'est le disque qui va limiter la vitesse de l'opération, pas vraiment le travail côté processeur.