In a bowl, mix onions with 2 tablespoons olive oil and the balsamic vinegar. Sprinkle lightly with salt and pepper. Let stand at least 5 minutes, stirring occasionally.
Meanwhile, rinse lamb; trim off and discard excess surface fat. Cut 1/2-inch slits all over the leg and insert garlic slivers. Rub lamb with 1 tablespoon olive oil and the lemon juice, then pat rosemary leaves and oregano onto meat. Sprinkle with salt and pepper. Set lamb in an 11- by 17-inch roasting pan. Spoon onions and marinade around lamb.
Roast in a 375° oven until a thermometer inserted in thickest part of leg to the bone registers 140° for medium-rare, 1 hour and 10 minutes to 1 1/2 hours; or 150° for medium, 1 hour and 20 minutes to 1 hour and 40 minutes. If drippings begin to burn, add water 1/4 cup at a time as needed.
Transfer lamb to a board or platter and, keeping warm, let stand 10 to 15 minutes. Keep onions warm in pan while lamb rests. Spoon onions and drippings around lamb; garnish with rosemary sprigs. Slice meat and serve with onions and juices. Add salt and pepper to taste.