You can reach a solution using the Regex.Replace overload that accepts a MatchEvaluator.
Example:
Dim pattern = "([0-9+ ]{3,6}[\s]{1,1}[0123456789 \-/]{4,15})"
Dim inputs As String() = { "089 12233 455", "0711 123 00 376", "0711 5600920", "0711 62009211", "0711 620092 11", "+49 711 123 00 376", "0049 711 5600920" }
For Each input In inputs
Console.WriteLine(input)
Dim result = Regex.Replace(input, pattern,
Function(m) "<a href=http://DIAL/" & m.Value.Replace(" ", "") & ">" & m.Value & "</a>")
Console.WriteLine("Result: {0}", result)
Console.WriteLine()
Next
The lambda uses the Match result and we build the link while replacing spaces with empty strings, and keeping the original value unaltered for the link text. You could make it more readable using String.Format if the concatenation looks unreadable. If the href needs to strip the leading plus sign, you could chain another String.Replace or perform another regex replace on [+ ] to remove spaces and plus signs.
I also think you can shorten your original regex to "[0-9+ ]{3,6}\s[0-9 -]{4,15}". Compared to your original pattern, the [\s]{1,1} has been shortened, and the [0123456789 \-/] uses a 0-9 range as you've done earlier. As long as the dash is placed either at the beginning or end of the character class, it doesn't need to be escaped. Lastly, I removed the / since I saw no examples with a forward slash.