Here you go: https://gojs.net/extras/sequencedTreeChildren.html
The custom SequencingTreeLayout automatically creates unmodeled (and thus unbound) Links between adjacent siblings. You will have to adapt the “template” Link that is named seqLink
and the code in SequencingTreeLayout.makeSequencingLink to get the desired appearance for those special links.
You could add an editable TextBlock to the node template that has a TwoWay Binding to some property on the node data, and change the comparer function to use that property value instead of the key. I guess then you’d want to implement a “TextEdited” DiagramEvent listener that invalidated the Diagram.layout, so that the layout would be performed again, possibly re-ordering the children.