Heat a large skillet over medium-low heat. Add butter and allow to melt. Add onions and stir to coat in butter. Cook for 3 to 4 minutes until softened. Add salt and pepper. Cook for 15 to 30 minutes, stirring often, until dark and caramelized. Remove from heat and allow to cool.
In a large bowl, combine ground beef, salt, pepper, thyme, eggs and bread crumbs. Once the onions are cool, mix them into the ground beef mixture.
Portion the beef into 3 tablespoonfuls. Form into a ball then press a finger into the middle. Place a cube of cheese into the indentation and close over the cheese and roll round again.
Heat skillet over medium heat and add olive oil. Cook meatballs in batches until cooked through and cheese is gooey, about 10 minutes.