Hola,
Según lo que informas, esta organización debería hacerse a nivel del servidor, cuando el app solicita el listado de productos, se envía la latitud y longitud, así el servidor con esa información genera el listado organizado según la ubicación del usuario, en el server se debe tener la información de ubicación de cada uno de los puntos a mostrar, yo pensaría que el desarrollo es mas a nivel del server, si ya tienes implementado el tableview, es solo organizar la info de ese lado, podrías contarme en que esta desarrollado el server?, que lenguaje usas?, tienes la info de ubicación de estos puntos?, los servicios que retornan los JSON en que están?, quedo atento.