You're going to have to write a custom shipping module to achieve this.