Slice the onions and half each of the slices. You can half them in a stack.
Heat 1-2 tablespoons of olive oil in a frying pan over medium high heat.
Add the onions to the hot olive oil.
Cook the onions, stirring frequently, until translucent.
Once translucent (meaning you can sort of see through them), lower the heat to medium and cook until the onions are gooey. Stir them occasionally while they cook. If they get too brown, lower the heat more. This may take about 20 minutes.
While your onions are cooking, butter four slices of bread on one side.
When the onions are ready, add one tablespoon of butter to a frying pan at medium high heat. If you need to/want to, you can put the onions into a bowl and use the same frying pan.
When the butter is melted, add two slices of bread, butter side down.
Lift up a corner of the bread regularly to check on doneness.
When the bread reaches a golden color, top one slice with about 1/4 cup of the shredded Parmesan.
Add a thick layer of the cooked onions.
Add another layer of 1/4 cup of shredded Parmesan.
Top with the other slice of bread, pressing down. The unbuttered side goes against the cheese.
Cook the grilled cheese, flipping twice, until the cheese is melted.
Remove and repeat with the other two slices of bread, adding more butter to the pan if necessary.