Preheat oven to 325°F. Position rack in lower third of oven.
Place ham flat side down in large shallow roasting pan and score a diamond pattern about 1/8-inch deep into any fat. Season with pepper and bake for 1 1/2 hours.
Meanwhile, in small saucepan over medium heat, combine jelly, butter and thyme, whisking occasionally until jelly and butter melt together and mixture comes to a gentle boil, 1 to 2 minutes. Cover and set aside.
In medium bowl, combine the grapes and shallots. Set aside.
Baste ham with jelly mixture. Continue baking, basting the jelly mixture and/or pan juices about every 15 minutes. When ham temperature reaches 120°F, add grapes and shallots to roasting pan, stirring to coat with pan juices. Continue baking and basting until internal ham temperature reaches 140°F, 15 to 18 minutes per pound total cooking time. Remove ham from oven, transfer to cutting board, and let rest 15 to 30 minutes. (If grapes and shallots aren't tender yet, return roasting pan to oven.)
Slice enough ham to serve and arrange on plates or a platter. Season roasted grape, shallot, and pan juice mixture with pepper and spoon some on top of ham. Serve remaining grape mixture on the side.