Okay Afridi Akhtar, I am guessing that by "strong teams" you mean the test playing nations (in ODIs, of course). Here are Afridi's averages against the "strong teams".
Australia: 31
Bangladesh: 19
England: 23
India: 56
New Zealand: 48
South Africa: 39
Sri Lanka: 43
West Indies: 36
So he has a DECENT average against Australia and a very good average against England. I am ignoring Bangladesh because I do not consider them to be a strong team just yet although they have the potential to get there.
Compare this to Sehwag, who according to you, is an average batsman who only does well against mediocre teams. Lets see his batting averages vs all test playing nations (in ODIs).
Australia: 23
Bangladesh: 42
England: 37
New Zealand: 53
Pakistan: 36
South Africa: 27
Sri Lanka: 37
West Indies: 27
I will now color code. Green = excellent, blue = good, red = poor.
Afridi
Excellent: 2 (Bangladesh, England)
Good: 1 (Australia)
Poor: 5 (India, New Zealand, South Africa, Sri Lanka, West Indies)
Sehwag
Excellent: 2 (Bangladesh, New Zealand)
Good: 3 (England, Pakistan, Sri Lanka)
Poor: 3 (Australia, South Africa, West Indies)
I don't think I need to tell you that 3 (Bangladesh, England, Australia) is less than 5 (Bangladesh, New Zealand, England, Pakistan, Sri Lanka).
In short, because I know you're a little slow (just a little), Sehwag performs better against the "strong teams" than Afridi does.
If you want me to break it down further, I will just repeat what I said earlier. Afridi's five-for was just a an average bowler against a mediocre team. Hate to burst your bubble.
From your post it's obvious that you want to make what I said more than what it was by making it an India vs Pakistan issue. I see no logic or reason in that. The words "Sehwag" and "India" were not even included in my post yet you "coincidentally" decided to drag them in. Why? I think we all know the answer but I don't see a reason to spit it out.