Si no son muchos datos los de tu archivo txt, podrías ir dividiendo tus datos cada 3 espacios como bien dices utilizando el método
String.Substring y una vez que los tengas dividido los vuelves a guardar en el archivo txt ordenados.
Algo así.
Código C#:
Ver originalusing (StreamReader sr = new StreamReader("archivo.txt"))
{
String line;
while ((line = sr.ReadLine()) != null)
{
string campo1 = line.Substring(0, 3);
string campo2 = line.Substring(4, 3);
string campo3 = line.Substring(8, 3);
//y asi sucesivamente
}
}
Como ves en el ejemplo voy dividiendo los datos del archivo cada 3 caracteres.
Puedes ver como funciona el metodo substring aqui
http://msdn.microsoft.com/es-es/library/aka44szs.aspx
Claro todo esto dependerá de como tengas los datos en el archivo txt