Can anyone explain the difference between turning off the SQL Browser service and Hiding an instance through the SQL Server Configuration Manager?
To hide an instance of SQL Server, you need to set
HideInstance flag to YES.
When you hide an instance, it will indicate that sql server browser should NOT respond with information about this server instance. Note that hidden instances support only shared memory connections. TCP/IP is allowed (as long as the port is 1433 or you specify) [Thanks to @AaronBertrand for highlighting this].
SQL Server uses the SQL Server Browser service to enumerate instances of the Database Engine installed on the computer. This enables client applications to browse for a server, and helps clients distinguish between multiple instances of the Database Engine on the same computer.
Refer : Hide an Instance of SQL Server Database Engine and Why listing all of your SQL Servers does not always work ?