List processing

StringTemplate["`1` - `3` <*#4-#2*> km"] @@@  Flatten /@ Partition[resupply, 2, 1]
{
 "Coleman - Highwood House 106 km", 
 "Highwood House - Canmore 123 km", 
 "Canmore - Exshaw 16 km", 
 "Exshaw - Ghost Station 43 km", 
 "Ghost Station - MountainAire 82 km", 
 "MountainAire - Nordegg 182 km", 
 "Nordegg - Robb 120 km", "Robb - Hinton 48 km"
}

{place, dist} = Transpose[resupply];
With[{n = Length@resupply}, 
 TableForm[
  Partition[Abs[#1 - #2] & @@@ (dist[[#]] & /@ Tuples[Range[n], 2]), 
   n], TableHeadings -> {place, place}]]

enter image description here

Outer could have been used instead of Tuples.

Or:

pos = Subsets[Range[Length@resupply], {2}];
pairs = #1 <> "-" <> #2 & @@@ (place[[#]] & /@ pos);
d = Abs[#1 - #2] & @@@ (dist[[#]] & /@ pos);
Grid[Transpose[{pairs, d}], Alignment -> Left]

enter image description here


The Terse Way

{-#, #2 "km"} & @@@ Differences[resupply] // TraditionalForm

$\left( \begin{array}{cc} \text{Coleman}-\text{Highwood House} & 106 \text{ km} \\ \text{Highwood House}-\text{Canmore} & 123 \text{ km} \\ \text{Canmore}-\text{Exshaw} & 16 \text{ km} \\ \text{Exshaw}-\text{Ghost Station} & 43 \text{ km} \\ \text{Ghost Station}-\text{MountainAire} & 82 \text{ km} \\ \text{MountainAire}-\text{Nordegg} & 182 \text{ km} \\ \text{Nordegg}-\text{Robb} & 120 \text{ km} \\ \text{Robb}-\text{Hinton} & 48 \text{ km} \\ \end{array} \right)$