He should not be learning c.
The firefox project is the cumulative effort of a whole open-source team which includes some very very skilled programmers. The best he could do is download the whole firefox source code and try to build it. Which itself is no small feat, not to mention needing to download the various software to build it. Nevertheless, there are too many technologies involved in the browser.
The easiest way to building his own browser, is to succumb to using Microsoft .NET technologies.
There are a few ways to doing that:
1. Pay between $600 - $900 for Visual Studio 2005.
2. Pay an equivalent amount or more for a similar product from Borland.
3. Buy an OEM or education version for much less.
4. Recommended: Download from Microsoft the free Visual Studio Express for Visual Basic, C# and C/C++.
Why? Because all the components are already found in .NET. He would just need to drag the browser component from the component library tray and drop it onto the visual programming space.
Would he learn how to program that way? Would he be able to create a browser that behaves the way he wants? Yes and yes, because he could modify the behaviour and configuration of the components he uses. He gets to see a browser running, even before he wrote any code, just by dropping the browser component and clicking the "build" button.
He could start with Visual Basic. Perhaps, he wants to have a godzilla pounding the foreground while a the contents of a slow website is coming in. Perhaps, he could start with making the URL bar (aka address bar) being able to read in phrases like "My mommy's website" which his lookup table would actually link to the actual address of his mommy's website. May be he wants a File Explorer component tab together with his Browser component tab. May be, he wants to use the File Explorer component tab to store the hierarchy of his Favourites.
And then, after many many many months he could progress to C# or C/C++. By that time, he might decide he would rather create a simple game which would then lead him to a future of becoming a game programmer, which would make more sense.
Of course, one of the most annoying traits of Visual Basic programmers who move to C# or C++ is bringing the whole baggage of BASIC style spaghetti programming with them rather than learning to accept the conveniences offered by object-oriented programming.
I am sure certain quarters would brand this recommendation as betrayal on my part, but I don't think the kid is ripe for learning java and using hotspot components.