Ok, I came up with the following, which seems a little hokey, but it works:
flyGrid1.BeginInit();
HierachyColumn hierarchy = new HierachyColumn("Hierarchy2");
hierarchy.Visible = false;
hierarchy.Indent = 75;
flyGrid1.Columns.Items.Add(hierarchy);
hierarchy = new TreeViewColumn("Hierarchy1");
hierarchy.ShowCheckBoxes = true;
hierarchy.FitMode = ColumnFitMode.SmartFit;
flyGrid1.Columns.Items.Add(hierarchy);
flyGrid1.Columns.NestedColumns.Items.Add(new Column("Hierarchy"));
flyGrid1.Columns.NestedColumns.Items.Add(new BooleanColumn("Check"));
TreeViewNode parentNode = new TreeViewNode(new object[] {"Hello", "Hello"});
flyGrid1.Rows.RootNode.Items.Add(parentNode);
TreeViewNode childNode = new TreeViewNode(new object[] {"World", "World"});
parentNode.Items.Add(childNode);
NestedGridNode gridNode = new NestedGridNode();
gridNode.Value = new object[] {"Opens Inner Grid", "Opens Inner Grid"};
childNode.Items.Add(gridNode);
TreeViewNode parentInnerGridNode = new TreeViewNode(new object[] {"Hello", true});
gridNode.Items.Add(parentInnerGridNode);
TreeViewNode childInnerGridNode = new TreeViewNode(new object[] {"World", false});
gridNode.Items.Add(childInnerGridNode);
flyGrid1.Rows.RootNode.ExpandAll();
flyGrid1.EndInit();