気がついたらできるようになっていた
case class User(firstName: String, lastName: String)
implicit val config = JsonConfiguration(JsonNaming.SnakeCase)
implicit val userWrites: OWrites[User] = Json.writes[User]
val user = User("Taro", "Yamada")
println(Json.toJson(user).toString)
実行結果
{"first_name":"Taro","last_name":"Yamada"}