You can set ReadOnly property of columns in the first level to true, in the second level to False:
[c#]
private void LockColumns(Columns cols, bool lock)
{
foreach(Column col in cols.Items)
col.ReadOnly = lock;
}
private void Init(FlyGrid flyGrid)
{
//lock first level columns
Columns cols = flyGrid.Columns;
LockColumns(cols, true);
//Get second level columns
cols = cols.NestedColumns;
//unlock second level columns
LockColumns(cols, false);
//get third level columns
cols = cols.NestedCols;
//lock third level columns
LockColumns(cols, true);
}