In a small bowl, mix together the rub ingredients. Using your hands, coat the meat in the olive oil and then smear the rub all over. Transfer the meat to a plate, cover with plastic wrap, and chill in the fridge for at least 1 hour, or up to 4 hours.
Light the outer burners on a gas grill, leaving the middle burner unlit, and preheat to 225°F. Remove the meat from the fridge 30 minutes before you are ready to cook it to allow it to come to room temperature.
Fill a roasting pan (preferably a disposable aluminum pan) two-thirds full with water and add the onion and garlic cloves. Place the pan under the grill rack over the unlit burners. Place the meat on the grill rack above the pan (you want to make sure the drippings from the meat will be caught by the pan). Close the lid of the grill and cook, checking the pan occasionally and adding more water if necessary, until the meat reaches an internal temperature of 180°F (approximately 7 1/2 to 10 hours total, or 1 1/2 to 2 hours per pound).This sounds like a high internal temperature, but it is important to reach this temperature in order to allow the connective tissue to start to break down for fork tender meat. Remove the meat from the grill, cover with foil and let rest for 10 minutes.
Slice the meat off the bone and serve immediately.
If you have a smoker or smoking function on your BBQ, that would work really well with this cut of meat. Hickory, oak or walnut chips add great flavor. Smoke the meat until the internal temperature reaches 180°F.