Hi Eric,
If I understand correctly you'd like to pass categoryId information to Target. That information isn't available until the "bottom of the page". So you're not able to capture that value at the top of the page for the Target global mbox request.
Here's an option for sending information to Target from data layers, or variables that aren't present until the bottom of the page.
Create a page load rule in DTM. Run at bottom of page. Add a custom Javascript tag that fires a secondary call to Target with the user.categoryId info. Your data element should return a value at the bottom of the page, or you could directly reference the variable.
This is a sample for the script you can use:
adobe.target.trackEvent({mbox:'dataCapture', params:{'user.categoryId':_satellite.getVar(dataElementName)}});