It is especially useful when we have numerous game objects in the Hierarchy, the following is one example of showing game object's layer name:

Note that Default, Player, UI are the layer names.

To achieve above function is quite simple, all you need is to create a script and put into the project.

using UnityEditor;
using UnityEngine;

[InitializeOnLoad]
public class ShowLayerNames {

    static readonly int IgnoreLayer = LayerMask.NameToLayer("Default");

    static ShowLayerNames() {
        EditorApplication.hierarchyWindowItemOnGUI += HandleHierarchyWindowItemOnGUI;
    }

		static readonly GUIStyle _style = new GUIStyle() {
        fontSize = 12,
        alignment = TextAnchor.MiddleRight
    };


    static void HandleHierarchyWindowItemOnGUI(int instanceID, Rect selectionRect) {
        var gameObject = EditorUtility.InstanceIDToObject(instanceID) as GameObject;

        if (gameObject != null) {
            EditorGUI.LabelField(selectionRect, LayerMask.LayerToName(gameObject.layer), _style);
        }
    }
}

[InitializeOnLoad]: means scripts will be running when Unity Editor starts, you can do the similar function by my other post: How to run unattached script in Unity

EditorApplication.hierarchyWindowItemOnGUI: two parameters, first one is the object instance id, the second one is the display area.

Reference

https://docs.unity3d.com/ScriptReference/EditorApplication.HierarchyWindowItemCallback.html