Thanks for the additional information. I really appreciate it.
At 2 hours post ingestion, it's too late to try to induce vomiting with the hydrogen peroxide. The sock will have already left the stomach and be in the intestines.
Ideally, the best thing to do would be to take him to an emergency vet and have them take an x-ray to see exactly where the sock is...then, if it's still high enough up in the digestive tract, they can use an endoscope to remove it safely.
Of course, I know not everyone has access to an emergnecy vet, so if you can't get him to one tonight, then you can monitor him and then in the morning, give your regular vet a call and have them take a peek. They may want to keep him for the day and run a barium study to see if the sock is moving through the digestive tract (which is what we want, because if it gets caught, it causes an obstruction which can be fatal if left untreated) and possibly help it along by feeding him a high fiber meal and then monitoring things.
I would absolutely, positively make sure his vet sees him tomorrow at the latest...even if he's otherwise acting normally.
I hope this helps.