A) that depends on the rules at the casino, some require turning up the cards when all active players are all-in, some don't. If it's a home game it's the rule of the "host", or whatever your tradition is. It should be stated before play starts.
B) See A. If there is a requirement it applies to all players in the hand.
C) If it is not required, the one the made the bet shows first. In other words if you push all-in and your firend calls you, and there is no requirement to turn over cards till the end, then you would have to show first. Your firend may or may not show his.
2) You can't show just one card, if you show your cards in a showdown to win the pot you MUST show both cards. If you fold or much your hand at the end though you can show one, both or noine of your cards. Unless of course there is a requirement to show cards when all-in.
MOst caisnos and tournaments now require that all players involded in an all-in pot turn up their cards prior to the remaining cards being shown.
Short answer is that in the majority of casinos
, tournaments, online play and home games your firend would be wrong.
Hope that helped.