Не понимаю я это GUILayout.
GUILayout.BeginHorizontal(GUIContent.none, GUI.skin.box, GUILayout.ExpandWidth(true), GUILayout.Height(40));
Rect rect = GUILayoutUtility.GetAspectRect(1);
GUI.Box(rect, GUIContent.none);
GUILayout.EndHorizontal();
Но высота все равно больше, чем 40.
Если убрать GUILayoutUtility.GetAspectRect(1), то высота будет минимальной т.е. меньше 40.
Как задать жесткий размер? MinHeight и MaxHeight не помогают.