Bring a large pot of water to a boil. Add onions and boil 1 minute. Transfer with a slotted spoon to a bowl of ice water. Let stand 1 minute, then peel using a small knife.
Melt butter and oil over medium-high heat in a large (12-inch) ovenproof skillet until foam from the butter subsides. Sauté onions until browned (about 5 minutes). Carefully add balsamic vinegar (it will splatter a bit), water, honey, rosemary, bay leaf, salt, and pepper, and bring to a simmer. Transfer onions with liquid to oven. Braise, uncovered, until onions are tender and liquid is syrupy (about 1 hour). Remove bay leaf before serving.