Do you mean you wish to add more grouping columns? 
Names Default To Here(1);
dt = Current Data Table();
results = Column Dialog(
	src=ColList("Cols to be centered", Min Col(1)),
	trg = ColList("centered by", Min Col(1))
);
srcs = results["src"];
trgs = results["trg"];
For Each({src}, srcs,
	colname = (src << get name) || " centered by";
	
	mean_expr = Expr(Col Mean());
	Insert Into(mean_expr, NameExpr(src));
	For Each({trg}, trgs,
		colname = colname || " " || (trg << get name);
		Insert Into(mean_expr, NameExpr(trg));
	);
	Eval(Substitute(
		Expr(dt << New Column(colname, "Numeric", "Continuous", Formula(
			_col1_ - _mean_
		));
		),
		Expr(_col1_), Name Expr(src),
		Expr(_mean_), Name Expr(mean_expr),
	));
);
Optionally you could also let JMP do more of this by using New Formula Column and changing names after
Names Default To Here(1);
dt = Current Data Table();
results = Column Dialog(
	src=ColList("Cols to be centered", Min Col(1)),
	trg = ColList("centered by", Min Col(1))
);
srcs = results["src"];
trgs = results["trg"];
res = dt << New Formula Column(
	Operation(Category("Distributional"), "Center"),
	Columns(srcs),
	Group By(trgs)
);
					
				
			
			
				
	-Jarmo