It's not possible. The sync/async distinction is type-level information. Macros however are a purely syntactic construct. They don't (and can't) have access to type information.
Trying to generate sync/async code seems shady, while we are at it. Are you sure you aren't looking for generics instead of a macro? At the type level, an async function is just a function that returns impl Future. If you want to generate a function which has the same return type as another function, you'll need generics.