Using go.Spot.Center alignment on the vertical swim lanes sample

Leave the Placeholder as:

            $(go.Placeholder,
              { padding: 12, alignment: go.Spot.TopLeft }),

and add this to the initialization of the Diagram:

  "InitialLayoutCompleted": function(e) {
    var diagram = e.diagram;
    diagram.nodes.each(function(n) {
      var grp = n;
      if (grp instanceof go.Group && grp.category === "") {
        var memberctr = diagram.computePartsBounds(grp.memberParts).center;
        var lanectr = grp.findObject("SHAPE").getDocumentBounds().center;
        diagram.moveParts(grp.memberParts, lanectr.subtract(memberctr));
      }
    });
  },

Basically, after everything has been loaded and laid out, it moves all of the lane/group contents to be in the middle of the lane.