While the asymmetric routing argument in the other answer is valid, it is not applicable to the ping/mtr/traceroute case.
The time it takes for the packet to travel from A to B usually is different than the time it takes for the packet to travel from B to A. But you almost never see those times individually.
ping
, traceroute
, mtr
— all those tools measure the overall delay of the whole round trip, which is the sum of the time packet travels from A to B and the time reply travels from B to A. They send the packet and wait for the reply, and subtract the timestamp they sent the packet from the timestamp they saw the reply.
If you send PING from A to B, the PING REPLY has to travel from B to A. If you send PING from B to A, the PING REPLY has to travel from A to B. The addresses are the same when sending PING or PING REPLY from A to B, so the routing will be the same, and so is for the reverse direction. In both cases we have one packet from A to B and one packet from B to A and we measure the sum of their travel times. If we ping in other direction, the only thing changes is the order of addends, which doesn't matter.
The only valid cause of the difference might be if the intermediate systems treat PING and PING REPLY differently, e.g. impose different routing delays on them. This is very unusual and I wouldn't expect that. Nobody in their right mind will route PINGs from A to B along some path and PING REPLYs from A to B along other path. There is no valid point in setting up such detail in the configuration.
ICMP has the facility to measure the one-leg delay precisely, and that's TIMESTAMP and TIMESTAMP REPLY packets. It uses the mechanism similar to the NTP is using to synchronize clocks. The tools I mentioned, however, never use them, and nobody usually answers them.
Also, all the tools display the important bits of the latency distribution: average, minimum, maximum, and standard deviation. While successive packet latencies can differ substantially, distributions will be the same.
So, while your colleague might be correct in the sense the unidirectional delay "towards" is different from the delay "back", they are wrong in interpretation of what you see in the tools reports. Those reports should be the same distributions.