Does anyone know if this is possible and how it could be implemented?
Kibana can only visualize data in Elasticsearch. This means data in Neo4J or another data store must be first indexed into Elasticsearch. The Neo4J web site has some ideas on how to do this: https://neo4j.com/developer/elastic-search/
Incidentally, depending on what you are trying to accomplish, you might be interested in Elastic's Graph product: https://www.elastic.co/products/graph.
What about the Kibi Kibana fork https://github.com/sirensolutions/kibi.
Would this tool be able to allow connection with Neo4J or would the data still have to be indexed with Elasticsearch? For large sql datasets how long would indexing take?
I'm not too familiar with Kibi so I can't confidently speak to whether it would help in this case or not. I'm hoping someone else on these forums will chime in.
As for how long indexing large SQL datasets into Elasticsearch would take, its difficult to provide a generic answer. I would recommend trying this out for a subset of your dataset to get an estimate. I can say, however, that indexing data from relational databases into Elasticsearch is quite common. In fact, there is even a Logstash input plugin that will read data from a relational database with just a few lines of configuration: https://www.elastic.co/blog/logstash-jdbc-input-plugin. Then you can combine that with the Logstash output plugin for Elasticsearch to send the data to Elasticsearch: https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html