RE: year to attribute vacation hours to
Like all other hours and pay, it's recognized on the date of the paycheck.
RE: So if he takes vacation e.g. the last day in December 2018 and that goes onto his 2019 year paycheck, how do i manage the Vacation hours so it is attributed to the Vacation hour bank for 2018?
You don't need to do anything. Just like the regular pay amounts.
RE: In other words, doesn't QuickBooks Desktop Pro with Enhanced Payroll allow you to mark which DAY the vacation was taken?
No it doesn't track when any earnings were earned, only when they are paid. (You can track time worked or vacation taken in the time feature if you use that.)
RE: Is there a better way to handle this?
No, there is no better way either with QB or other payroll apps. QB does all that is needed.