You might like to look at this blog post: https://zaproxy.blogspot.com/2017/06/scanning-apis-with-zap.html
Basically you can specify new headers via config parameters, eg:
-config replacer.full_list\(0\).description=auth1 \
-config replacer.full_list\(0\).enabled=true \
-config replacer.full_list\(0\).matchtype=REQ_HEADER \
-config replacer.full_list\(0\).matchstr=Authorization \
-config replacer.full_list\(0\).regex=false \
-config replacer.full_list\(0\).replacement=123456789 \
-config replacer.full_list\(1\).description=auth2 \
-config replacer.full_list\(1\).enabled=true \
-config replacer.full_list\(1\).matchtype=REQ_HEADER \
-config replacer.full_list\(1\).matchstr=AnotherHeader \
-config replacer.full_list\(1\).regex=false \
-config replacer.full_list\(1\).replacement=abcdefghi
will cause the following headers to be added to every request ZAP makes:
Authorization: 123456789
AnotherHeader: abcdefghi
You can specify as many headers as you need to by using incrementing indexes.