See
Garbage collector spikes because of GUI page-2#post-6317280
GUILayouUtility.tBegin is what allocates even with empty on GUI because it re-creates objects every time OnGUI makes a pass. You can re-use cached but this might lead to some issue, albeit I havent encountered any yet.
Problem is, as you fix this part - another one will surface with IMGUI.