Preheat the oven to 300°F. Cut the pork into large chunks and season with the barbecue rub.
Heat the oil in a Dutch oven until hot. Add the pork and cook in batches until browned on all sides. Remove the pork from the pot, reserving the drippings in the pan.
Add the onions to the drippings and cook over medium heat until tender, about 5 minutes.
Meanwhile, stir together the cola, bbq sauce, ketchup, and Worcestershire sauce in a medium bowl or measuring cup. Add to the onions in the pot and scrape the browned bits from the bottom of the pan with a wooden spoon. Return the pork to the pan and nestle in the liquid.
Cover the Dutch oven and cook for 3 hours or until the pork is fork-tender. Remove the pork from the pot. If desired, skim the fat from the top of the liquid.
Using two forks, shred pork and return to the drippings in the pot. Keep warm until ready to serve.