Trim and discard fat and any transparent membrane from surface of lamb.
Peel garlic and shallots and cut into 1/4-inch-thick slivers. Pierce lamb all over with the tip of a small knife and insert garlic and shallots into cuts (lamb will look like a porcupine). Also tuck 2 teaspoons rock salt into cuts, spacing evenly over meat.
Mix thyme, rosemary, pepper, and olive oil. Pat mixture all over the lamb.
If cooking over charcoal briquets, ignite 60 briquets on firegrate of a barbecue with a lid. When coals are dotted with gray, about 25 minutes, push an equal number of coals to opposite sides of grate. Add 5 briquets to each mound of coals. Put a foil drip pan between coals. Set grill in place.
If using a gas barbecue, turn heat to high and close lid for at least 10 minutes. Adjust burners for indirect grilling (heat on parallel sides of grill but not in center). Set a drip pan between burners and put grill in place.
Put lamb on grill over drip pan, but not directly over heat. Cover barbecue; open all vents. (If cooking over charcoal, after 30 minutes add 5 more briquets to each mound of coals.) Cook until a meat thermometer inserted through thickest part of meat to bone registers 125° for rare (1 hour to 1 hour and 10 minutes), or 135° for medium-rare (about 1 hour and 10 to 30 minutes).
Transfer meat to a platter and let rest 10 minutes. Carve, and salt to taste.