I honestly cant answer this question. Either Shanks wins with Extremely High difficulty and leaves the fight in a near death state, or Garp win with High Difficulty and leaves the fight in a rough state.
Actually I see garp winning more times then shanks. Garp seems like the type of person who would tank most of the attacks thrown his way. I really strongly think there is a reason Oda did not involve garp in the war. It was bad enough having whitebeard running around embarressing admiral. Garp would have done the exact same except to the pirate side.
It only took one punch from garp to put Marco down and bruise him. Mind you that is something not even Kizaru an admiral could do.
Shanks Mid-Diffs this. He's above the admiral's by portrayal/hype, Garp isn't taking him on.
Garp is also above admiral level. All his life his only chanlleges were yonko level opponents