You can use sortWith. This doesn't take differently sized lists into account because zip will throw out the difference, but I think it does something like what you're after:
lists.sortWith((a,b) => {
a.zip(b).filterNot(x => x._1 == x._2) match {
case Nil => true
case t => t._1 < t._2
}
})