No, they are not related. Those with a percent sign are used for the types of local variables in procedure frames. If you have defined a type somewhere, e.g.
#define PTR DD
you can't use PTR in a procedure frame. First because simple local types are specified with a single letter (D, Q, etc), and second because such type defines are not recognized by GoAsm for locals, I don't know why. But you can use structures for them. So you can define the pointer type for locals like this:
%PTR STRUCT
DD
ENDS
Actually it's already defined that way in the headers.
Yes, you can define WORD and DWORD as well.