The rootkit replaces the legitimate call to EnumProcesses() with the address of its own implementation. Its implementation calls the original, but before it returns the list, it removes any mention of the processes it has been told to hide.
While the behavior and outcome are similar, I consider hooking to be slightly different, because it can be done legitimately. Hooking is generally done through an officially supported API, and the OS tracks all such hooks so it can undo them when the hooking process is terminated. A description of Microsoft's hooking mechanism can be seen here. Malware instead often directly modifies the memory without notifying the OS.