Yes, you can change the tokens on a per-lead level using the importToList function. Please review the info on page 13 of our SOAP API document -
If there are multiple values for a My Token, here’s the priority of which value will be used in the email:
importToList value for My Token predominates.
scheduleCampaign value for My Token is used if there is no importToList value.
Program value for My Token is used if there is no importToList or scheduleCampaign value.
If a value is blank or is not specified in a higher priority function, we default to the next option. So, if importToList doesn’t specify a token value we use the value in scheduleCampaign if available. If not, we use the default value from the Marketo Program.