What is the difference between call stack and intermodular calls. Could you clarify the difference between the two? For example if I need to catch message box API function, do these methods serve the same purpose?
They are completely different things.
Call stack window shows such information as stack frame for each function call in the current thread, including arguments passed, name of callee and the (virtual) address where it was called from.
Intermodular calls window, on the other hand, shows all calls to the external (API) functions in the current module.
That being said, if you want to find message box function, you can do it by opening Intermodular calls window, clicking Destination button (that will sort functions by name) and you may set breakpoints on each place this function is called, like presented in the image below:
Of course pick your desired function name instead of atoi.