The DOM is an object representation of the HTML code. HTML documents are just simple text files, but it is often useful to consider one like it is a tree of elements. So, if your html contains <body><div>hello</div><div>world</div></body>
then the DOM will have a "body" object that contains two "div" objects as children. It lets you examine and modify an HTML document in a program without having to do text parsing of the HTML code.
A DOM event is raised when the user interacts with an element of the DOM, so it's something like an "onclick" or "onkeypress" event. It will have an event handler, which is a function containing code to execute when the event occurs.
Because the XmlHttpRequest is asynchronous. After the request is sent, the page will not wait for the response but instead will continue executing the rest of your code. The callback function waits for the response from the server and then executes. So your code to request data from the server should go in the event handler, and the code to process the data goes in the callback.
This just tells the system that the callback function is to be called when the XmlHttpRequest gets data back from the server. If you had multiple XmlHttpRequests with different callbacks you would need to make sure each callback is registered to the right XmlHttpRequest.
This is the text processing that is involved in turning the HTML code into a DOM tree. It is often done automatically by the browser, so your javascript should not need to worry too much about it.
This just means the data processing you are doing with the data you received from the server. It will depend on what data you are getting and what you want to do with it.