Having just gotten back from a cruise myself I can tell you that there is a fairly broad definition of what constitutes "formal" on a cruise ship. If he has a dark sportcoat in a color that does not overtly clash with his kilt I would recommend that, even though it may not be technically a kilt jacket. A true kilt cut jacket will set you back probably at least a couple hundred dollars, and depending on where you buy it may not be obtainable in time for your cruise.

The shirt hose thing is more of a guideline than a strict rule, but I agree with DBH that cream hose probably look best with a similar or lighter cream shirt, and white hose (if you are of that mind) look best with white shirt. Try to pick a tie that picks up the colors of the kilt and flashes, either a solid or a regimental style striped tie are usually good.

For some ideas of what looks good with what see the thread at the top of the general section about "10 different looks".

I have the kit, so if I was to do a kilt formal for a cruise dinner I would do something like this:



The guy on the left of the picture is me in a black argyll jacket and 5 button waistcoat with a scrunch tie/cravat (formal but technically below black tie in most folks book) while the guy on the right is a friend wearing a formal PC jacket and 3 button waistcoat with a black bow tie, a true black tie outfit.

Cruise formal can be a lot less than that, however, and you can probably dress anywhere from a sportcoat and tie up to a tuxedo if you like. It is more likely that he will make a splash just being dressed up and in a kilt than for the rest of his outfit, as long as he does not look like a clown with too many bright colors scattered about his body (tie, hose, flashes, etc...). Let the kilt be the center of attention in the outfit.