Preheat the oven to 350 degrees F (175 degrees C).
Place the onions in a layer in the bottom of a Dutch oven or medium roasting pan with a lid. Arrange the lamb shanks on top of the onions. Pour the wine, balsamic vinegar and olive oil over the lamb. Place a clove of pressed garlic next to each shank, and a quarter of a lemon on each side. Pour the tomatoes over everything, then season with salt, pepper and basil.
Cover and place in the preheated oven. Cook for 3 hours. Use juices from the pan to make a nice flavorful gravy.