GUILayout with text in columns

I am attempting to create a vertical GUILayout scroll area that has single line buttons. This part I have fine with the code below. Where I am having difficulties is I would like to have multiple pieces of information in these buttons, each aligned in a column location, but I do not want separate buttons. For instance, this post provides good direction on creating rows/columns of buttons. My goal is to simply have aligned text in each of the column location, as I would like a single button for each row. In my code look at item.qty, item.name, item.description. These are the text values I would like to align at horizontal locations within each button, is this possible? Perhaps the best solution is using the same type of logic to overlay labels in the proper locations. Lastly, is this method of coding GUILayouts old school at this point, and I would be better off / have more flexibility with Canvases and newer UI commands?

GUI.Box(rectFull1, "");
GUI.Label(new Rect(center - (buttonWidth1 / 2), 32, buttonWidth1, 80), "Title");
GUILayout.BeginArea(new Rect(w_4_1, 120, w_4_width * 4, h_2_height*2));
GUILayout.BeginVertical();
scrollPosition = GUILayout.BeginScrollView(scrollPosition, GUILayout.Width(w_4_width * 4), GUILayout.Height(h_2_height*2-120));
foreach (Item i in myList)
{
        if (GUILayout.Button(i.qty+": "+i.name+", "+i.description, leftButtonMedium))
        {
            //My action will go here
        }
}
GUILayout.EndScrollView();
GUILayout.EndVertical();
GUILayout.EndArea();

Okay I got something good working. I basically ditched using GUILayout, and instead am using GUI.BeginScrollView()
//custom measurements for GUI.Button and Multiple GUI.Labels for Column Data
GUI.EndScrollView()

I would be interested if there is a method to do this with GUILayout, but I found switching to standard GUI was my friend as I can overlap buttons and labels within a scroll area better.