The "whole world" here, harmonized, implies that God's elect people will come from all nations and all tribes.
Scripture tells us that Christ will fail to save none whom the Father has sent him to save.
So Christ *did* die for everyone in the sense that God's elect is drawn from all across mankind from all time.
When John is writing to the Jews that Christ is dying for the whole world, he is explaining that God's elect will be expanded into the gentile world.
Everyone = whole world = many sons to glory = the children God is drawing into Christ.
The Passover lamb's blood takes away the Sin of the Hebrews, but Christ's blood takes away the sin of the world (God's elect now expanded to all nations and tribes through Christ).
God is not imperfectly redeeming all of mankind, but perfectly redeeming a people to Himself from the entire world.
