Preheat the oven to 450 degrees F.
Line a 9-by 13- by 2-inch pan or your oven's broiler pan with a sheet of heavy-duty aluminum foil large enough to fully wrap the roast. The shiny side of the foil should be up. Sprinkle the roast on all sides with salt and pepper and place it in the center of the foil. Spread the onion slices over the top of the roast and pour the vinegar around it. Bring the ends of the foil together and fold several times, and then fold the ends together to completely enclose the roast. Pour about 1 inch of water into the pan around the foil-wrapped roast. Bake until the meat is fork tender and brown, 3 to 4 hours. Check the water level in the pan regularly during cooking and replenish it if necessary. If any juice seeps from the foil seals during roasting, save it to use in making the gravy.
When the roast is done, remove the package from the baking pan and let it cool for a few minutes. Open the package carefully to preserve all the juices and transfer the meat to a platter. Cover with a tent of foil to keep it warm while you make the gravy.
Pour the roasting juices into a measuring cup and let the fat rise to the surface. Skim off the fat, reserving 4 tablespoons in a saucepan and discarding the rest. (If the fat measures less than 4 tablespoons, add enough butter to make up the difference.)
Measure the remaining defatted pan juices and reserve. If you have less than 2 cups, add water to make 2 cups. Add the flour to the fat in the saucepan and stir with a wire whisk to make a roux. Cook over medium-low heat until the flour is lightly browned, about 1 minute. Slowly whisk in the reserved pan juices and stir until thickened.
Slice the roast or cut it into chunks (it will be very tender), and serve it with the gravy.
Recipe adapted from Georgia Cooking in an Oklahoma Kitchen by Trisha Yearwood (c) Clarkson Potter 2008