Alignment of nodes in Swimlane

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

The SwimLaneLayout is a custom LayeredDigraphLayout | GoJS API that expects each node data object to have some property (defaults to “lane”) that names the lane the node/vertex should be placed in.

It arranges the Groups assuming there is one per lane, and that each Group’s key is the lane name. The way that the Group template is defined is important, but you have a lot of flexibility with its contents.

If you want to use it and customize it, you will need to be very familiar with GoJS. Please read Get Started with GoJS and all of the pages of the Introduction, starting at GoJS Introduction -- Northwoods Software, before undertaking non-trivial changes to this new sample or the SwimLanesLayout.