A regex may be able to validate that a hostname conforms to one of the RFCs but it can't validate that the hostname is valid or that it exists or that it resolves to an IP address that runs an NTP server.
A regex is a bad way to achieve what I think you are trying to achieve, although you haven't actually stated what you are trying to achieve. Feel free to add this to your question.
A better way would be to perform a DNS lookup on the hostname and verify that it resolves to an IP address (be that IPv6 or IPv4) and that when you connect to that IP address on port 123, you get a valid NTP protocol response.
Answering the additional questions, NTP has nothing to do with hostnames at all. An NTP server will listen on an IP address but it will have no idea whether you obtained that IP address by looking up a hostname using DNS or by giving the IP address raw to your NTP client.
This means, by extension, that a hostname is a hostname. There is no difference between a web server hostname, an email server hostname and an NTP server hostname. The regex you found in that StackOverflow answer will serve the basic purpose of validating that it is superficially valid but remember that your users could easily type in an IP address and expect it to work.
I would still do a DNS lookup if it were me doing this validation but you should provide different feedback depending on what is wrong with it. The NTP connection would be a nice addition.