How do I group node across the lane

Ah, I found it: Alignment of nodes in Swimlane - #5 by walter

Basically, if you have seen the Beat Paths sample, Beat Paths, the same model has been augmented by having each node know which lane it belongs in by assigning each node to a group.

Take a look at SwimLaneLayout extension: Beat Paths with Lanes for Divisions Using SwimLaneLayout
It is implemented at: https://gojs.net/latest/extensions/SwimLaneLayout.js
It is documented at: SwimLaneLayout | GoJS API

That sample actually organizes the data into two different ways – either into 8 groups/lanes, or into 2 groups/lanes.

You just need to add the groups (lanes) to your model data, and assign each node to a group (lane). Then use the SwimLaneLayout instead of a regular LayeredDigraphLayout. The complete implementation is on that sample page.