The simplest way to do this would be to use timeouts to control your execution so that it executes three times within a loop:
function sleep(duration) { return new Promise(resolve => setTimeout(duration, resolve)); }
// in your scheduled function that runs every minute
const promises = [];
promises.push(doThing());
await sleep(20000);
promises.push(doThing());
await sleep(20000);
promises.push(doThing());
await Promise.all(promises);
The downside to this is that you will be charged for the execution time while waiting, so you will be guaranteed to be charged for 40s of execution time every minute. There is not a simple answer outside of this, though -- schedules can only execute at fastest one minute so you would need to set up a different way to trigger an event (i.e. a VM that dumps a message into PubSub every 20s) to achieve it other ways.