Perhaps you could start by thinking about the problem from the other way around as was done here: http://stats.stackexchange.com/questions/41443/how-to-actually-plot-a-sample-tree-from-randomforestgettree
left daughter right daughter split var split point status prediction
1 2 3 Petal.Length 4.75 1
2 4 5 Sepal.Length 5.45 1
3 6 7 Sepal.Width 3.15 1
4 8 9 Petal.Width 0.80 1
5 10 11 Sepal.Width 3.60 1
6 0 0 0.00 -1 virginica
7 12 13 Petal.Width 1.90 1
8 0 0 0.00 -1 setosa
9 14 15 Petal.Width 1.55 1
10 0 0 0.00 -1 versicolor
11 0 0 0.00 -1 setosa
12 16 17 Petal.Length 5.40 1
13 0 0 0.00 -1 virginica
14 0 0 0.00 -1 versicolor
15 0 0 0.00 -1 virginica
16 0 0 0.00 -1 versicolor
17 0 0 0.00 -1 virginica
If you can manage to convert the above table to the one generated by tree, you will probably be able to customize tree:::treepl, tree:::treeco and tree:::text.tree to suit your needs, though I do not have an example of this approach. In particular, you probably want to get rid of the use of deviance, class probabilities, etc. which are not meaningful in RF. All you want is to set up nodes coordinates and split values. You could use fixInNamespace() for that, but, to be honest, I'm not sure this is the right way to go.