I have done this NRT-HND airport transfer a few times already

) Usually, my flight is JL 724 (KUL-NRT), which has consistenly arrived within 20-30 minutes before 7 AM, and also connecting to JL 6 (HND-JFK) at 11:05 AM. Basically, this is 4 hours published connection time, but you must be sure to to walk as fast as possible to beat all of the people who are ahead of you on arrivals as well.
I have preferred to take the train over the bus for the reasons that the bus can get stuck in traffic and that there is an 'Skyaccess Express' leaving NRT around 7:10 AM. From gate arrival to airside, it has taken me consistenly under 15 minutes if I have used the Visit Japan QR code to make immigration and customs easier to navigate, and assuming you have luggage, it comes out very quickly. Have your phone or IC card ready with about 2000 yen (easy to load an IC card on an iPhone via Apple Wallet) and head straight to the Keisei line platforms.
You would need to transfer trains somewhere in central Tokyo to catch a direct train to Haneda airport, so change anywhere between Oshiage and Keikyu-Kamata stations. Assuming you made the 7:10 AM departure, you arrive to HND around 9 AM, check-in again, drop luggage, and pass an efficeient security/immigration, you are airside by 9:20 AM. It is enough time to shower and have small bites to eat before boarding JL 6.
If you miss the 7:10 AM 'Skyaccess Express' train or have more than 1 large luggage, I would probably take the limousine bus, which gets you to HND by 9:30 AM. The train will get crowded quickly and the commuters do get annoyed if we take up too much space for luggage (I usually bring a very packed 1 luggage filled with omiyage or souvenirs - typical of Asian family haha). You get the risk of getting stuck in traffic, but the timetable is padded a bit to take traffic into consideration. Just hope that you do not get slowed down too much on a weekday morning.
Best of luck!